-
мне необходимо нарисовать трубу в OpenGL по имеющимся точкам. точки образуют отрезки-оси цилиндров. как это сделать?
-
т.е. как рисовать цилиндры в принципе понятно. как правильно их развернуть и состыковать?
-
glBegin(gl_Triangles); glVertex3f(0, 0, 0); glVertex3f(0, 1, 0); glVertex3f(0, 1, 1); glEnd;
То бишь по полигонам.
-
> glBegin(gl_Triangles); > glVertex3f(0, 0, 0); > glVertex3f(0, 1, 0); > glVertex3f(0, 1, 1); > glEnd;
Великолепные получатся циллиндры ;)
> [1] crytogen (29.03.07 14:49) > т.е. как рисовать цилиндры в принципе понятно. как правильно > их развернуть и состыковать?
У тебя есть по сути трехмерный отрезок, я правильно понял ? Находи угол его поворота относительно осей координат. A(X, Y, Z) получается из (1, 0, 0) повопротом по 2м осям с корректировкой длины. L1 = ArcTg(Y / X); Теперь поворачиваешь координаты X и Y на (-L1), у тебя будет что то типа A1(X1, Y1, Z). Тогда L2 = ArcTg(Z / Y1); Идея, думаю ясна...
А состыковка... ну тут нудно во-первых уточнить, как ее делать. По биссектрисе, скруглением, или еще как. Но в любом случае циллиндру придется рисовать самому с помощью примититвов.
-
Проблема вот в чём - один из вариантов поворота сделал и сам, но цилиндр вращается вокруг своей оси и я не могу просто составить список точек и нарисовать по прямоугольным сегментам цилиндры ибо они хотя бы слегка да разворачиваются, а при серьёзном изгибе так вообще.
-
Это конечно не цилиндр уже, но всё же
-
Всё спасибо разобрался. Помог базис Френе.
-
тему можно закрывать.
-
Добрый день. Аналогичная проблема. при изгибе трубы цилиндр вращается по собственной оси в итоге невозможно сшить предыдущий кусок трубы с текущим. Буду благодарен за помощь в решении , наилучший вариант это код который рисует трубу без данной проблемы
-
А больше ничего не надо? А то я уж бегу просить мастеров написать тебе код.
|