Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2012, 14:49   #1
PRoRocK9
 
Регистрация: 29.12.2010
Сообщений: 4
Вопрос Нахождение соседней вершины полигона

Добрый день.
Во время реализации триангуляции полигона методом деления на монотонную часть возникла проблема.
По этому алгоритму полигон делится на монотонные в которых то и нужно узнать являются ли точки упорядоченные по координате х соседними.
к примеру этот полигон:

красной линией он разбился на 2 монотонных.
и верхний теперь состоит из вершин 0,2,3,4
есть 2 массива
в первом содержатся точки этого полигона poly[i].poly[0,2,3,4]
во втором упорядоченные по х points[4,0,2,3]
и разумеется есть их координаты в точно таких же массивах.
и самое интересное нужно определить будут ли точки 0 и 2 соседними.
сделал вот такое условие
Код:
 if ((point[points[st]-(points[st]-points[st-1])].X=point[points[st-1]].X) and
        (point[points[st]-(points[st]-points[st-1])].y=point[points[st-1]].y)) or
       ((points[st]+1<length(point)) and (point[points[st]+1].X=point[points[st-1]].X) and
        (points[st]+1<length(point)) and (point[points[st]+1].y=point[points[st-1]].y)) or
       ((points[st]=poly[i].poly[0]) and (points[st-1]=poly[i].poly[length(poly[i].poly)-1])) or
       ((points[st]=poly[i].poly[length(poly[i].poly)-1]) and (points[st-1]=poly[i].poly[0]))
зы в массиве point хранятся координаты всех точек от 0 до n
такое условие прекрасно справляется (первые 2 строчки) с данной фигурой но если нарисовать параллелограмм он скажет что 2 и 3 точка слева соседи хотя они в противоположных углах.
Кто сможет направить на истинный путь? 3 день мучаюсь.
PRoRocK9 вне форума Ответить с цитированием
Старый 04.06.2012, 18:53   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Судя по рисунку, 2 и 3 - соседи.
Непонятно, в чем проблема.
s-andriano вне форума Ответить с цитированием
Старый 04.06.2012, 19:29   #3
PRoRocK9
 
Регистрация: 29.12.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Судя по рисунку, 2 и 3 - соседи.
Непонятно, в чем проблема.
"и самое интересное нужно определить будут ли точки 0 и 2 соседними."
про 2 и 3 вершину я говорил про параллелограмм.
PRoRocK9 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование полигона Николая Ленин Общие вопросы Delphi 5 04.06.2011 22:07
Поворот полигона Николая Ленин Общие вопросы Delphi 9 02.06.2011 23:05
Ширина рисунка в зависимости от соседней ячейки! Poccomaxa Microsoft Office Excel 3 23.10.2010 14:49
площадь полигона boomeer Помощь студентам 5 17.10.2010 14:17
Подскажите! как сделать так что бы при выборе какого либо наименования в раскрывающемся списке в соседней xниколай Microsoft Office Excel 1 14.10.2009 17:10