Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.06.2012, 09:11
maestro90 maestro90 вне форума
Прохожий
 
Регистрация: 07.06.2012
Сообщения: 2
Репутация: 10
По умолчанию Построение много

Уже не знаю какой день мучаюсь над вопросом, в общем задача вот такая. Дано n точек и 3 массива, первый хранит кординаты Х, другой координаты У, третий уже готовый массив по которому идет строение точек, надо соединить точки так что бы не одна грань из этого многоугольника не пересекалась с другими гранями. То есть если это 3 точки, то получаем треугольник, если 4 то четырех угольник. Я реализовал подобным механизм, это нахождение минимального периметра пере соединив все точки и сделав обход по ним, но система уже висит на 11 точках. Большое спасибо.
Ответить с цитированием
  #2  
Старый 07.06.2012, 10:12
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Можно рисунок в студию? Желательно с примером, какие пересечения возможны, какие нет. Грани бывают у многогранников, при чём тут многоугольники?
Ответить с цитированием
  #3  
Старый 07.06.2012, 15:38
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

может что-то вроде сначала соединить ближайшие, а потом если есть пересечения линий, то менять их вершины местами
http://www.delphisources.ru/forum/at...d=133906948 3
для такого пойдёт
Изображения
Тип файла: png x.PNG (1.8 Кбайт, 18 просмотров)

Последний раз редактировалось Pyro, 07.06.2012 в 15:45.
Ответить с цитированием
  #4  
Старый 07.06.2012, 19:57
maestro90 maestro90 вне форума
Прохожий
 
Регистрация: 07.06.2012
Сообщения: 2
Репутация: 10
По умолчанию

Фух додумался сегодня, алгоритм оказался сложнее. Я сперва строю треугольник. Потом к нему прибавляю еще 1 точку. Потом в цикле перебираю все точки полученной фигуры так что, считаю расстояние от i точки до прибавленной и от i+1 до прибавленной. Получаю 2 числа складываю их и отнимаю расстояние от i до i+1 точки, там где это число будет минимально, между теми точками и будет находится добавленная точка. И так повторять n раз. Всем спасибо за внимание. Я просто думал что есть уже готовые алгоритмы.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025