:: Игры Разума
Скругление вершин многоугольника
Extortioner

Сообщений: 854
Откуда: Новосибирск
Дата регистрации: 06.10.2005
Давайте предположим, что у нас есть многоугольник с N вершинами. Пусть каждая вершина задаётся парой координат (X,Y). Зная координаты всех вершин мы можем построить этот многоугольник. Можно ли каким-либо образом построить фигуру с плавными линиями, проходящими через все вершины данного многоугольника? То есть к примеру Квадрат преобразуется в Круг, Прямоугольник в Овал и т.д.
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
sphinx

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Задача на алгоритм скругления угла в многоугольнике? А что известно про радиус скругления?

Скругление по заданному радиусу (геометрическое решение):
www.granitvtd.ru
ingraf.ru


------------------
"Veni, vidi, vici!"(с)




Исправлено 2 раз(а). Последнее : sphinx, 30.11.09 10:43
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
sphinx

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Есть такая программа KEDRWIN: www.kedrwin.com


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Слишком нечёткая постановка задачи. Взять тот-же квадрат - почему это он "скругляется" в окружность, пересекающую вершины, а не например в 2 полуокружности и 2 стороны исходного квадрата между ними, или вообще в сложную, частично "вогнутую" фигуру? Или именно в квадрат, но со "слегка скруглёнными" углами?
Обычное сопяржение углов (дугами окружностей) делается так, что кривая НЕ проходит через саму вершину угла - она лишь к СТОРОНАМ угла плавно прилегает... Т.е. для квадрата в предельном случае получится круг ВПИСАННЫЙ в исходный квадрат.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
Extortioner

Сообщений: 854
Откуда: Новосибирск
Дата регистрации: 06.10.2005
Мне интересен вариант, который получается в Corel Draw - там берёшь к примеру прямоугольник, переводишь его в кривые, потом щёлкаешь на каждой вершине и говоришь Symmetrical после этого преобразования квадрат превращается в круг, прямоугольник в эллипс и тп.
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
Extortioner

Сообщений: 854
Откуда: Новосибирск
Дата регистрации: 06.10.2005
Интересно мне это вот с какой точки зрения - есть такая штука, называется польский формат - это формат описания примитивов на векторной географической карте. Дак вот там все горизонтали, границы зон и тп (топографическая карта) представлены в виде отрезков, естественно, что эти отрезки лишь приблизительно повторяют контуры естественных объектов. Но если попробовать при помощи такого скругления обработать ломаную линию, то она скорее всего очень близко ляжет с настоящей.
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Боюсь что там несколько иное "скругление" используется... Что-то не могу в гугле найти информацию по теме - видать ЖПС-ники сильно зашифровались и не открывают инфу даже поисковым ботам, или я просто не могу сформулировать вопрос корректно


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
Extortioner
Интересно мне это вот с какой точки зрения - есть такая штука, называется польский формат - это формат описания примитивов на векторной географической карте. Дак вот там все горизонтали, границы зон и тп (топографическая карта) представлены в виде отрезков, естественно, что эти отрезки лишь приблизительно повторяют контуры естественных объектов. Но если попробовать при помощи такого скругления обработать ломаную линию, то она скорее всего очень близко ляжет с настоящей.
Такое "скругление" вроде бы всегда называлось аппроксимацией кривых кусками прямых.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
Corel в данном случае использует кривые Безье
ru.wikipedia.org
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Леонид, но они же не проходят "через точки"... Точки лишь направляют "изгибы" кривой. Потому я сразу и отбросил этот вариант.
Кстати, кривые Безье фокс рисует если PolyPoints задействовать


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
Extortioner

Сообщений: 854
Откуда: Новосибирск
Дата регистрации: 06.10.2005
Да, точно, это вроде аппроксимацией называлось Помнил, же когда экспериментальную физику учил
Кстати на самом деле результирующая кривая может и не проходить через все вершины. Видимо на самом деле надо попробовать покопать в сторону аппроксимации и кривых Безье
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ну если не проходит, тогда да, попробуй - только учти, что реально кривая может оказаться ВЕСЬМА далеко от задающей точки... Причём если точек много, то они могут быть по разные стороны от кривой (т.е. для замкнутого многоугольника они будут как "внутри", так и "снаружи").


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Скругление вершин многоугольника
Рома
Автор

Сообщений: 1079
Дата регистрации: 06.06.2001
Extortioner
Да, точно, это вроде аппроксимацией называлось Помнил, же когда экспериментальную физику учил Кстати на самом деле результирующая кривая может и не проходить через все вершины. Видимо на самом деле надо попробовать покопать в сторону аппроксимации и кривых Безье

В принципе, можно решить и с помощью аппроксимации кубическими сплайнами.
См. вложение.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика