Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.25;
Скачать: CL | DM;

Вниз

Подскажите алгоритм расширения многоугольника, пожалуйста.   Найти похожие ветки 

 
Andrey007   (2003-09-15 13:32) [0]

Дано: список вершин многоугольника. Многоугольник может быть как выпуклым, так и невыпуклым.
Требуется: получить список вершин многольника, отстоящего от исходного на заданное расстояние. То есть, расстояние - это входной параметр этой процедуры.

Я делал так.
Первый шаг. Создаётся два списка точек - содержащие списки вершин многоугольников, у которых все стороны параллельны сторонам исходного - только у одного многоугольника все стороны оказываются внутри исходного, а у другого - вне.
Второй шаг. Из этих двух многоугольников выбирается тот, у которого больше высота - то есть, выбирается внешний. При этом получается так, что у невыпуклого исходного многоугольника внешний получается с персекающимися друг с другом сторонами.
Третий шаг. Поиск пересекающихся друг с другом сторон получившегося многоугольника и удаление пересечений.

Недостаток этого алгоритма состоит в том, что для исходных многоугольников с пилообразной границей на выходе получаются кривые расширяющие многоугольники.

Если бы многоугольники были выпуклыми, то можно было бы искать геометрический центр такого многоульника и проводить лучи к вершинам, а на них на заданном расстоянии откладывать вершины нового многоугольника. Но вот как быть с невыпуклыми многоугольниками?


 
Думкин ©   (2003-09-15 13:46) [1]

Эта проблема около года назад обсуждалась на Алголисте. Одна из первых веток. Посмотри там - может найдешь еще.
Там обсуждалась и корректность данной задачи.


 
Verg ©   (2003-09-15 13:47) [2]

Это что ж, эквидистанту к многоугольнику надо построить?
Или простое масштабирование?

Что называется "расстоянием меджу многоугольниками"?


 
Думкин ©   (2003-09-15 13:59) [3]

> Andrey007 (15.09.03 13:32)
Я там и примерный алгоритм приводил.


 
Andrey007   (2003-09-15 14:28) [4]

>Думкин ©
А алголист - это где? www.algolist.ru не существует

>Verg © (15.09.03 13:47)
Это что ж, эквидистанту к многоугольнику надо построить?
Или простое масштабирование?
Что называется "расстоянием меджу многоугольниками"?

Нужно построить такой многоугольник, у которого расстояние от каждой стороны до ближайшей исходной стороны равно заданному.


 
Думкин ©   (2003-09-15 14:52) [5]

http://algolist.manual.ru



Страницы: 1 вся ветка

Текущий архив: 2003.09.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
1-82294
Gabriel
2003-09-14 03:49
2003.09.25
как добавить свою кнопку в бар Internet Explorer a


3-82163
Centurion
2003-09-03 11:50
2003.09.25
Реиндексация парадоксовской БД


4-82562
stkatch
2003-07-22 11:04
2003.09.25
Вызов MessageBox из сервиса (службы)


8-82338
eXed
2003-05-26 13:01
2003.09.25
Как получить ширину одного символа в пикселях?


4-82558
Davinchi
2003-07-22 11:36
2003.09.25
Свойства файла MsWord