Визуализация тороидальной спирали
Я учу себя компьютерной графике, используя компьютерную графику с помощью OpenGL от Sumanta Guha. Кажется, я ударил маленького блокиратора, когда дело доходит до одного из упражнений.
Он просит читателя "пухнуть" тороидальную спираль с n катушками. Таким образом, это означает визуализацию трехмерной трубы в форме тороидальной спирали, которая повторяется n раз. Я был в состоянии разработать параметрические уравнения для кривой тороидальной спирали, но у меня возникли проблемы с математикой, чтобы решить для параметрических уравнений трехмерной трубы.
Параметрические уравнения для тороидальной спиральной кривой следующие:
Оборачиваемый тор имеет внутренний радиус (отверстие в центре "пончика") R и внешний радиус r.
Учитывая параметр t, в диапазоне [-PI, PI]
x = (R + r*cos(n*t)) * cos(t)
y = (R + r*cos(n*t)) * sin(t)
z = r*sin(n*t)
Очевидно, нам понадобится еще один параметр и другой радиус для реальной трубы.
Любые идеи о том, как начать решать эту проблему? Я немного ударился головой об этом и не смог.
Спасибо!
1 ответ
Для каждой точки p(t)
на вашей спирали вам нужно создать круг вершин. Вычислить касательную к кривой, найдя p(t+d)
для некоторого небольшого значения d
, Нормализовать вектор p(t)->p(t+d)
- это нормали плоскости, на которой будут лежать вершины вашей трубы.
Спроектировать вектор из p(t)
к началу координат на этой плоскости. Первая вершина в круге должна лежать на этой проекции, а остальные движутся во вращении вокруг плоскости нормали. Это обеспечит согласованное направление для каждого круга, так что вы можете соединить вершины в треугольники.