Привет всем,
Нужна методическая помощь (тыкнуть носом

в плане куда копать для решения такой задачи:
Есть 2D фигура — замкнутый контур, состоящий из линий, которые заданы точками. Либо прямые,либо сплайны.
Нужно взять одну из линий ("база"), развернуть её в прямую с сохранением длины,а все остальные кривые нужно соответсвенно перестроить.
То есть нужно "разогнуть" контур по какой-то базовой линии. Собственно как развернуть базу — вопросов нет. Меряю исходную длину, и откладываю прямой отрезок..А вот с остальными проблема..Вообще нет идей какую математику тут использовать..Подскажите куда копать, и что почитать по таким задачам?
Спасибо
Здравствуйте, st05148, Вы писали:
S>Привет всем,
S>Нужна методическая помощь (тыкнуть носом
в плане куда копать для решения такой задачи:
S>Есть 2D фигура — замкнутый контур, состоящий из линий, которые заданы точками. Либо прямые,либо сплайны.
S>Image: fl.jpg
S>Нужно взять одну из линий ("база"), развернуть её в прямую с сохранением длины,а все остальные кривые нужно соответсвенно перестроить.
S>То есть нужно "разогнуть" контур по какой-то базовой линии. Собственно как развернуть базу — вопросов нет. Меряю исходную длину, и откладываю прямой отрезок..А вот с остальными проблема..Вообще нет идей какую математику тут использовать..Подскажите куда копать, и что почитать по таким задачам?
S>Спасибо
Попробуй конформное отображение комплексной плоскости.
Рассмотрим точки на плоскости, как точки комплексной плоскости.
Вымираем несколько точек на базе (x_k) вычисляем куда они должны тобразиться x'_k
Ищем комплексную функцию, которая отображает точки куда надо:

.
(решаем систему линейных уравнений на a_i).
Не берите слишком много точек на базе, иначе полином окажется слишком высокой степени, и удаленный от базы объекты начнут "рассыпаться".
Если база "слишком кривая" и малым числом точек обойтись не удается, можно попробовать искать обратное преобразование (x'->x), выбрав базисные функции (по которым строим полином) так, чтобы они затухали при удалении от базы в направлении тела фигуры.
Например:
http://latex.codecogs.com/gif.latex?x%27_k%20%3D%20%5Cvarphi%20%5Cleft%20%28%20x_k%20%5Cright%20%29%3Dx_k+%5Csum_i%20%5Cfrac%7Ba_i%7D%7Bx_k-c_i%7D
Где точки C_i разбросаны "под базой":