Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

нарисовать трубу в OpenGL по точкам


crytogen ©   (2007-03-29 14:30:00) 

мне необходимо нарисовать трубу в OpenGL по имеющимся точкам. точки образуют отрезки-оси цилиндров. как это сделать?


Denis_   (2007-09-29 16:27:00) [1]

А больше ничего не надо? А то я уж бегу просить мастеров написать тебе код.


балюн   (2007-09-24 14:49:00) [2]

Добрый день.
Аналогичная проблема. при изгибе  трубы  цилиндр вращается по собственной оси в итоге  невозможно  сшить предыдущий  кусок трубы с текущим.
Буду благодарен за помощь в решении  , наилучший вариант  это код  который рисует  трубу без данной проблемы


crytogen   (2007-04-03 08:53:00) [3]

тему можно закрывать.


crytogen   (2007-04-03 08:52:00) [4]

Всё спасибо разобрался. Помог базис Френе.


crytogen   (2007-03-30 11:43:00) [5]

Это конечно не цилиндр уже, но всё же


crytogen   (2007-03-30 11:42:00) [6]

Проблема вот в чём - один из вариантов поворота сделал и сам, но цилиндр вращается вокруг своей оси и я не могу просто составить список точек и нарисовать по прямоугольным сегментам цилиндры ибо они хотя бы слегка да разворачиваются, а при серьёзном изгибе так вообще.


Rial   (2007-03-30 00:34:00) [7]

> 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);
Идея, думаю ясна...

А состыковка... ну тут нудно во-первых уточнить,
как ее делать. По биссектрисе, скруглением, или еще как.
Но в любом случае циллиндру придется рисовать самому
с помощью примититвов.


Nic (ro)   (2007-03-29 23:13:00) [8]

glBegin(gl_Triangles);
 glVertex3f(0, 0, 0);
 glVertex3f(0, 1, 0);
 glVertex3f(0, 1, 1);
glEnd;

То бишь по полигонам.


crytogen   (2007-03-29 14:49:00) [9]

т.е. как рисовать цилиндры в принципе понятно. как правильно их развернуть и состыковать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо