![]() |
|
#1
|
|||
|
|||
![]() Уже не знаю какой день мучаюсь над вопросом, в общем задача вот такая. Дано n точек и 3 массива, первый хранит кординаты Х, другой координаты У, третий уже готовый массив по которому идет строение точек, надо соединить точки так что бы не одна грань из этого многоугольника не пересекалась с другими гранями. То есть если это 3 точки, то получаем треугольник, если 4 то четырех угольник. Я реализовал подобным механизм, это нахождение минимального периметра пере соединив все точки и сделав обход по ним, но система уже висит на 11 точках. Большое спасибо.
|
#2
|
|||
|
|||
![]() Можно рисунок в студию? Желательно с примером, какие пересечения возможны, какие нет. Грани бывают у многогранников, при чём тут многоугольники?
|
#3
|
|||
|
|||
![]() может что-то вроде сначала соединить ближайшие, а потом если есть пересечения линий, то менять их вершины местами
http://www.delphisources.ru/forum/at...d=133906948 3 для такого пойдёт ![]() Последний раз редактировалось Pyro, 07.06.2012 в 15:45. |
#4
|
|||
|
|||
![]() Фух додумался сегодня, алгоритм оказался сложнее. Я сперва строю треугольник. Потом к нему прибавляю еще 1 точку. Потом в цикле перебираю все точки полученной фигуры так что, считаю расстояние от i точки до прибавленной и от i+1 до прибавленной. Получаю 2 числа складываю их и отнимаю расстояние от i до i+1 точки, там где это число будет минимально, между теми точками и будет находится добавленная точка. И так повторять n раз. Всем спасибо за внимание. Я просто думал что есть уже готовые алгоритмы.
|