Создание «естественного пути» вдоль сплайна - PullRequest
0 голосов
/ 18 января 2012

Мне нужен способ получить ориентацию (локальные оси x / y / z) в любой точке вдоль сплайна ... где ось z всегда является касательной сплайна, а x / y перпендикулярны друг другу, и z .

Одним из распространенных методов является вычисление вектора одной оси как скорости изменения тангенса, то есть x(t) = z(t) X z(t+dt) Тогда у просто x X z.

Однако я не уверен, что это дает то, что я бы назвал «естественным» путем ориентации. Я имею в виду, что у меня есть жесткий стальной стержень, который сгибается в несколько завитков, и затем я продвигаю гибкий шланг вдоль этого стержня. Если трение пренебрежимо мало, «естественный» путь будет означать, что шланг в любой момент заканчивается минимальным крутящим моментом, так как сам «раскручивается», чтобы получить состояние с более низкой энергией.

Есть ли способ сделать это, который не означает пересечение длины сплайна от 0-t, чтобы найти преобразование в данной точке t?

1 Ответ

2 голосов
/ 19 января 2012

Кажется, что вы ищете кадр Френе - движущийся трехгранник с единичным касательным, нормальным и бинормальным векторами

Сложение.простой пример:

X = 2 * t ^ 2-t + 5

Y = t ^ 3 + t ^ 2 + 2 * t - 1

Z = -t ^ 3 - 2 * Sin (t)


X '(t) = 4 * t-1;X '' = 4

Y '= 3 * t ^ 2 + 2 * t + 2;Y '' = 6 * t + 2

Z '= -3 * t ^ 2-2 * Cos (t);Z '' = -6 * t + 2 * Sin (t)


При параметре t = 0:

X '= -1;Y '= 2;Z '= -2;| R '|= Sqrt (1 + 4 + 4) = 3

T = (-1/3, 2/3, - 2/3)

и т. Д. ...

...