|
27 / 32 / 14
Регистрация: 08.09.2017
Сообщений: 448
|
|
Центр описанной окружности18.09.2017, 20:06. Показов 6231. Ответов 43
Метки нет (Все метки)
Дан остроугольный треугольник координатами своих углов.
Нужен алгоритм (приближенный), который бы позволил достаточно быстро вычислить центр описанной вокруг этого треугольника окружности. Решение 1. Несложно вычислить стороны треугольника 2. Потом площадь треугольника 3. Наконец радиус описанной окружности 4. Центр описанной окружности будет находиться внутри треугольника 5. Можно конечно с помощью случайных чисел определить с заданной погрешностью этот центр... А есть ли нечто более быстрое?
0
|
|
| 18.09.2017, 20:06 | |
|
Ответы с готовыми решениями:
43
Для множества точек на плоскости найти диаметр и центр минимальной описанной окружности
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 19.09.2017, 13:38 | ||
|
Опять 25…для чего вам центр окружности по 3 точкам?
Вот аналитику показали… два других метода тоже придумал =). Быстрей метода 1 ничего не будет.
0
|
||
|
27 / 32 / 14
Регистрация: 08.09.2017
Сообщений: 448
|
|
| 19.09.2017, 14:12 [ТС] | |
|
Excalibur921,
я тут подумал... а что если взять в треугольнике произвольную точку и из этой точки сделать шаг к той вершине треугольника, что дальше всех... получим новую точку и новый шаг... в конце концов идти будет некуда - все вершины на равном расстоянии... ... надо подумать о величине шага...
0
|
|
|
Почетный модератор
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 19.09.2017, 14:16 | |
|
Любые итерационные методы хуже аналитических и в смысле скорости и в смысле точности.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 19.09.2017, 18:54 | ||
|
Быстрей метода
Намного меньше база данных у метода 2 но он и медленней. Добавлено через 3 часа 11 минут Пределы координат вершин и точность центра? Добавлено через 59 минут Стоит прикинуть грубо размеры базы данных центров так становиться страшно. 50 на 50 сетка =2500 положений точки точек 3 значит: 2500^3= 15 625 000 000 комбинаций Координаты ответа 2 значит 15*2=30 Гиг флоат =). Итого примерно 30 Гиг ответов и вход адрес 3 инт вектора… Puporev, Этот код разве не быстрей? Найти координаты центра окружности по трём точкам йот, Берите 9 строк аналитики и находит центр точно без фантастических размеров базы данных.
0
|
||
|
Почетный модератор
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 19.09.2017, 20:05 | |
|
Excalibur921, По моему тоже, только вид сбоку.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 19.09.2017, 20:27 | |
|
Ну давайте посчитаем если не пропустил ничего =).
Ваш код: 18 сложений \вычитаний 18 умнож\делений 36 действий По моей ссылке: 15 сложений \вычитаний 13 умнож\делений 28 действий Явно быстрей. Хоть это и voodoo math.
0
|
|
| 20.09.2017, 09:33 | |
|
Не по теме: Вот смотрю - сколько же интеллекта (не побоюсь этого слова) сжигается попусту, бездарно разбазаривается! Однако все мои попытки направить процесс в нужное русло неизменно заканчиваются полным фиаско :( Создаю тему - реальная задача, трудная но интересная. И.. вся словоохотливость куда-то испаряется. А немногие ответившие сразу же включают "непонималку", тема сваливается в пререкания и затухает. Но вот какую-то глупую комбинаторику или вообще полную фигню месят не жалея слов :)
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 20.09.2017, 10:47 | ||
|
Igor3D, Есть расчет быстрей?
Допустим вход 3 вектора флоат выход 1 вектор флоат. Быстрей 28 математических есть метод?
0
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 20.09.2017, 11:29 | |
|
https://ru.wikipedia.org/wiki/Описанная_окружность
Казалось бы мелкий расчет да? Вот прикинем все что математики не написали то программистам огребать =) Набросал код лень проверять...он уже проиграл. rA rB rC вершины a=Sqrt((rBx-rCx)^2+(rBy-rCy)^2) длина BC b=Sqrt((rAx-rCx)^2+(rAy-rCy)^2) длина AC c=Sqrt((rAx-rBx)^2+(rAy-rBy)^2) длина AB p=(a+b+c)/2 S=Sqrt(p*(p-a)*(p-b)*(p-c)) A0=8*S^2 A1=a^2/A0 A2=b^2/A0 A3=c^2/A0 Aax=A1*(rAx-rBx) Aay=A1*(rAy-rCy) Abx=A2*(rBx-rAx) Aby=A2*(rBy-rCy) Acx=A3*(rCx-rAx) Acy=A3*(rCy-rBy) r0x=Aax*rAx+Abx*rBx+Acx*rCx r0y=Aay*rAy+Aby*rBy+Acy*rCy 24 сложений\вычитаний 33 умножений\делений\корней 57 действий Ого.. А что если тот код по моей ссылке самый быстрый в мире?
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 20.09.2017, 19:05 | |
|
йот, Утратили интерес к задаче? Нужны хоть примерно макс\мин возможные координаты вершин и точность центра окружности.
0
|
|
|
27 / 32 / 14
Регистрация: 08.09.2017
Сообщений: 448
|
|
| 20.09.2017, 19:17 [ТС] | |
|
Excalibur921
я не утратил интереса к своей теме... я разрабатываю более быстрый алгоритм решения... по сути прямое решение... кажется... я нашел... Добавлено через 3 минуты Можете поместить одну вершину прямо в центр Декартовой системы координат... это ускорит решение...
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 20.09.2017, 19:51 | |
|
0
|
|
|
27 / 32 / 14
Регистрация: 08.09.2017
Сообщений: 448
|
|
| 20.09.2017, 20:18 [ТС] | |
|
Excalibur921,
Это не секрет... я даже не подумал об этом... Примените масштабирование... а сам треугольник в отношении (большая сторона)/(малая сторона) < 2 ... то есть треугольник более похож на равносторонний... тут целая теория о Степени подобия треугольников. Вот пример... даны два треугольника с углами A1; B1; C1 и A2 B2 C2... углы заданы в порядке возрастания D - Степень подобия треугольников... тогда D = |A1 - A2| + |B1 - B2| + |C1 - C2| (это определение) вывод: при D = 0 треугольники подобны...
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 20.09.2017, 20:29 | |
|
Найти длины всех сторон.
Найти макс длину стороны MaxL0. Найти макс длину стороны из двух оставшихся сторон MaxL1. Найти какой вершине (хранить имя в A0) треугольника принадлежат эти стороны. Найти угол Alfa0 между сторонами MaxL0 MaxL1 при A0. Пересчитать длину в долях от наибольшей MaxL1New=MaxL1/MaxL0 Теперь любой треугольник можно представить так: MaxL0 будет лежать на OX и длинной 1. Зная Alfa0 и длинну MaxL1New отложить от ОХ против часовой и найти координаты точки P. Поскольку MaxL1New всегда <1 то любой треугольник покажет точку принадлежащую сектору круга. Осталось разбить это поле сеткой точек в которых нужно аналитически посчитать центр описанной окружности заранее и сделать базу данных ответов. Работает так: 1)Задан произвольно ABC. 2)Нашли вершину треугольника в закрашенной области (красная P). 3)Округлили ее координаты( к какому узлу сетки она ближе Фиолетовая) и получили адрес (i,j) в котором ответ координаты центра окружности вокруг этого мелкого треугольника точка M. 4)Ставим M в этом мелком треугольнике масштабируем и крутим треугольник обратно. 5)Получили центр M найденный по аналитически заданным двум вершинам, а третья округлена. База данных очень мелкая. Вопрос только будет ли это быстрей чем 28 действий.
1
|
|
|
27 / 32 / 14
Регистрация: 08.09.2017
Сообщений: 448
|
|
| 20.09.2017, 21:04 [ТС] | |
|
Excalibur921,
вы правы, я тоже изначально хотел применить случайные числа для поиска центра описанной вокруг треугольника окружности... Но вот частные случаи дали фантастически быстрый результат я приводил пример остроугольного треугольника близкого к прямоугольному... середина самой длинной стороны этого треугольника и будет ответом с некоторой погрешностью...
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||||
| 20.09.2017, 21:31 | ||||
|
Не знаю что за теории...может так проще? Если есть два близких +- Delta по значению угла то это равнобедренный. Если все углы близки к 60+- Delta градусов то равносторонний. Если один угол близок к 90+- Delta град то прямоугольный. Поскольку все эти 3 вида крайне редкие…то смысл? Если только у вас не огромная Delta. Всеравно выпадает огромное количество других случаев. Метод что я описал выше перемалывает любые треугольники… вопрос в скорости и оптимизации математики. Была идея что всякий треугольник это равносторонний+некая деформация сдвига+ деформация масштабирования вдоль некоторой линии. Может тут как то подойти…найти их величину, посчитать для равностороннего и применить трансформации к центру описанной окружности.Тут нужен взгляд математика. А этот самый простой и быстрый: Черный круг аналитический, красный по узлам сетки.
1
|
||||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 21.09.2017, 10:24 | |
|
Координаты вершин треугольника от 0 до 5 с плавающей.
Сетка точек 5 на 5. a=round(x(A)) //округляет до целых b=round(y(A)) c=round(x(B)) d=round(y(B)) e=round(x(С)) f=round(y(С)) Вот тут хитрая задачка, нужна функция возвращающая уникальное число для уникальной комбинации a,b,c,d,e,f. Получим уникальное число f(a,b,c,d,e,f)=a + 5*b+25*c+125*d+625*e+3125*f А может так правильно? a + 10*b+100*c+1000*d+10000*e+100 000*f Массив M[i] по адресу i содержит 2д вектора центров описанных окружностей посчитаны заранее для треугольников по точкам A(a,b),B(c,d),C(e,f). Работает так: Округляем координаты вершин получаем a,b,c,d,e,f. Получаем уникальное число f(a,b,c,d,e,f). Читаем ответ M[f(a,b,c,d,e,f)] =центр описанной окружности. Почему то математики не хотят ничего сказать =(. Итого: 16 действий и база данных + грубый ответ против 28 действий аналитика есть ли смысл?
1
|
|
|
Почетный модератор
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 21.09.2017, 10:34 | |
|
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 23.09.2017, 20:43 | |
|
Если найдете такое уравнение, то есть идея как еще можно попробовать сделать поиск центра.
Нужна формула поверхности z=f(x,y) похоже на однополостный гиперболоид со сдвигом или другая формула рисующая похожую поверхность просто. Конкретно нужны только эти участки: Есть идеи?
0
|
|
| 24.09.2017, 12:09 | ||
). Фигуры такие делаются очень просто, только нужно не каноническое, а параметрическое ур-е, в общем видеx = f(u, v) y = f(u, v) z = f(u, v) Где u и v "параметры" меняющиеся с заданным шагом в заданных диапазонах. Напр полагаем v = 0, прогоняем u от 0 до 360 с швгом напр 10. Потом v = 1, опять прогоняем u и.т.д. Получившиеся "цепочки" соединяем полигонами. Начинаем с цилиндра x = cos(u) * R y = sin(u) * R z = v сдавливаем его в середке и двигаем по x напр так x = cos(u) * R * (0.5 + cos(fabs(v - 5) / 10 * 30) + v; y = sin(u) * R * (0.5 + cos(fabs(v - 5) / 10 * 30); z = v Вот и вся любовь
0
|
||
| 24.09.2017, 12:09 | |
|
Найти радиус описанной окружности
Определить радиус описанной окружности. Формула центра описанной окружности Найти радиус описанной окружности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|