Re: Развертка 2D контура
От: Кодт Россия  
Дата: 26.12.14 15:11
Оценка:
Здравствуйте, st05148, Вы писали:

S>Нужно взять одну из линий ("база"), развернуть её в прямую с сохранением длины,а все остальные кривые нужно соответсвенно перестроить.

S>То есть нужно "разогнуть" контур по какой-то базовой линии. Собственно как развернуть базу — вопросов нет. Меряю исходную длину, и откладываю прямой отрезок..А вот с остальными проблема..Вообще нет идей какую математику тут использовать..Подскажите куда копать, и что почитать по таким задачам?
S>Спасибо

Каждой точке опорной кривой однозначно соответствует точка разогнутой прямой.

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

По расстояниям на пенпердикулярах — есть простой способ и сложный.
Простой — считать, что расстояния сохраняются, то есть, если некая точка исходной фигуры была на удалении d от опорной кривой, то и в разогнутой фигуре она будет на том же удалении (и, естественно, по ту же сторону).
Сложный способ — устремить радиус кривизны R данной точки кривой в бесконечность, при этом преобразование координат станет нелинейным, но на малом удалении (d < R) близким к линейному. (Забыл, как называется такая проекция).
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.