Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2012, 11:48   #1
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
По умолчанию [OpenGl Delphi] Чайник из поверхности безье

Добрый день. Есть программа для построения поверхности безье с http://nehe.gamedev.net/tutorial/bez...een_fix/18003/ , мне нужно с помощью нее построить или любой другой построить Чайник. Код слишков великоват... Может у кого заволялся?

Последний раз редактировалось neomax38; 16.04.2012 в 11:52.
neomax38 вне форума Ответить с цитированием
Старый 16.04.2012, 14:41   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Тебе принципиально нужно самому его строить или можно воспользоваться сторонними модулями? А то есть модуль GLUT, в котором построение чайника уже встроено и вызывается одной функцией.
procedure glutSolidTeapot(Scale : GLdouble);
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 16.04.2012 в 14:50.
Rin вне форума Ответить с цитированием
Старый 16.04.2012, 16:04   #3
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
По умолчанию

Именно так по точкам...
neomax38 вне форума Ответить с цитированием
Старый 17.04.2012, 06:37   #4
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Ну тогда тебе может пригодиться вот это.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 17.04.2012, 12:29   #5
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
По умолчанию

Ооо как жестко... А как все это на opengl реализовать
neomax38 вне форума Ответить с цитированием
Старый 17.04.2012, 12:33   #6
glyckoza
Новичок
Джуниор
 
Регистрация: 17.04.2012
Сообщений: 1
По умолчанию

на опенгл это еще сложнее))

_______________________
http://www.gardencompany.org/
glyckoza вне форума Ответить с цитированием
Старый 17.04.2012, 18:51   #7
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Упрощу тебе задачу, точки чайника лежат в файле "123", а за считывание точек отвечает процедура ReadFromFile. А вот как организовать построение по точкам остаётся домашним заданием.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 20.04.2012, 11:17   #8
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
По умолчанию

Это же точки для построения чайника из полигонов... Как из них поверхность Безье сделать? Еще мне упростили задание.. Надо не чайник а вазу простую например..

Последний раз редактировалось neomax38; 20.04.2012 в 12:43.
neomax38 вне форума Ответить с цитированием
Старый 21.04.2012, 11:13   #9
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
По умолчанию

Вот нарисовал половинку вазы.. Вторую не знаю как отзеркалить.. И дно как нарисовать

Код:

procedure initBezier;                                      
begin
  mybezier.anchors[0,0] := makePoint(-0.75,-0.75,-0.5);
  mybezier.anchors[0,1] := makePoint(-0.25,-0.75, 0); 
  mybezier.anchors[0,2] := makePoint( 0.25,-0.75, 0);


  mybezier.anchors[0,3] := makePoint( 0.75,-0.75,-0.5);
  mybezier.anchors[1,0] := makePoint(-0.75,-0.25,-0.5);
  mybezier.anchors[1,3] := makePoint( 0.75,-0.25,-0.5);
  mybezier.anchors[2,0] := makePoint(-0.75, 0.25, -0.5);
  mybezier.anchors[2,3] := makePoint( 0.75, 0.25, -0.5);
  mybezier.anchors[3,0] := makePoint(-0.75, 0.75,-0.5);
  mybezier.anchors[3,1] := makePoint(-0.25, 0.75,0.75);
  mybezier.anchors[3,2] := makePoint( 0.25, 0.75,0.75);
  mybezier.anchors[3,3] := makePoint( 0.75, 0.75,-0.5);


//  mybezier.anchors[4,0] := makePoint(0.75,0.75,0.5);
//  mybezier.anchors[4,1] := makePoint(0.25,0.75, 0.0); 
//  mybezier.anchors[4,2] := makePoint( -0.25,0.75, 0.0);
//  mybezier.anchors[4,3] := makePoint( -0.75,0.75,0.5);
//  mybezier.anchors[5,0] := makePoint(0.75,0.25,0.5);
//  mybezier.anchors[5,3] := makePoint( -0.75,0.25,0.5);
//  mybezier.anchors[6,0] := makePoint(0.75, -0.25, 0.5);
//  mybezier.anchors[6,3] := makePoint( -0.75, -0.25, 0.5);
//  mybezier.anchors[7,0] := makePoint(0.75, -0.75,0.5);
//  mybezier.anchors[7,1] := makePoint(0.25, -0.75,-0.75);
//  mybezier.anchors[7,2] := makePoint( -0.25, -0.75,-0.75);
//  mybezier.anchors[7,3] := makePoint( -0.75, -0.75,0.5);
neomax38 вне форума Ответить с цитированием
Старый 21.04.2012, 19:53   #10
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Нужно создать ещё один глобальный массив mybezier1 такого же типа как mybezier.
Заполнить такими точками.
Код:
  mybezier1.anchors[0,0] := makePoint(-0.75,-0.75,-0.5);
  mybezier1.anchors[0,1] := makePoint(0.25,0.75, 0); 
  mybezier1.anchors[0,2] := makePoint( -0.25,0.75, 0);


  mybezier1.anchors[0,3] := makePoint( 0.75,-0.75,-0.5);
  mybezier1.anchors[1,0] := makePoint(0.75,0.25,0.5);
  mybezier1.anchors[1,3] := makePoint( -0.75,0.25,0.5);
  mybezier1.anchors[2,0] := makePoint(0.75, -0.25, 0.5);
  mybezier1.anchors[2,3] := makePoint( -0.75, -0.25, 0.5);
  mybezier1.anchors[3,0] := makePoint(-0.75, 0.75,-0.5);
  mybezier1.anchors[3,1] := makePoint(0.25, -0.75,-0.75);
  mybezier1.anchors[3,2] := makePoint( -0.25, -0.75,-0.75);
  mybezier1.anchors[3,3] := makePoint( 0.75, 0.75,-0.5);
И для него выполнить такие же команды OpenGL как и для mybezier.
А окружность строится с помощью gluDisk();
А вообще почитай Краснов "OpenGL в Delphi". Найди прям с исходниками.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delphi поверхность Безье un_known Мультимедиа в Delphi 8 27.03.2012 07:18
Кривая Безье. Muaxaxa Помощь студентам 2 28.11.2011 00:49
Win API, чайник и Delphi Crabobass Общие вопросы Delphi 2 19.04.2011 11:29
Поверхности второго порядка (Delphi) Казанцев Андрей Помощь студентам 2 10.05.2009 16:12
Кривая Безье ELL Помощь студентам 4 20.05.2008 22:56