Визуализация тороидальной спирали

Я учу себя компьютерной графике, используя компьютерную графику с помощью 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) к началу координат на этой плоскости. Первая вершина в круге должна лежать на этой проекции, а остальные движутся во вращении вокруг плоскости нормали. Это обеспечит согласованное направление для каждого круга, так что вы можете соединить вершины в треугольники.

Другие вопросы по тегам