![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вращать, например, квадрат без искажений в OpenGL? [Delphi, Windows]
Inspired © (2004-06-04 00:59:00)Доброе время суток.
Как вращать, например, квадрат без искажений в OpenGL?
Поверхность OpenGL имеет размеры [-1,1]x[-1,1], а обычный экран отношение сторон 3:4.
Мне нужен на экране квадрат, поэтому рисую объект [-3/8,3/8]x[-1/2,1/2]
glBegin(GL_QUADS);
glVertex3f(-3/8,-1/2,0);
glVertex3f(-3/8, 1/2,0);
glVertex3f( 3/8, 1/2,0);
glVertex3f( 3/8,-1/2,0);
glEnd;
При повороте на угол, например, 45 град
glRotate(45,0,0,-1);
он сплющивается и становится прямоугольником (чем по сути вообще-то и является).
Если изначально рисовать квадрат [-1/2,1/2]х[-1/2,1/2], то он сразу выглядит прямоугольником, а при повороте сплющивается по вертикали.
А нужен обычный правильный вращающийся квардат.
Подскажите, как с этим бороться?
MeF88 (2004-06-09 16:11:00) [1]
> Andr (09.06.04 14:06) [3]
Лучше уж через glViewport...
Andr (2004-06-09 14:06:00) [2]
glScalef (0.75, 1, 1);
glrotatef(45,0,0,-1);
glBegin(GL_QUADS);
glVertex3f(-0.5,-0.5,0);
glVertex3f(-0.5, 0.5,0);
glVertex3f( 0.5, 0.5,0);
glVertex3f( 0.5,-0.5,0);
glEnd;
glScalef (4/3, 1, 1);
Inspired (2004-06-06 16:28:00) [3]ОК, попробую, большое спс.
Magikan (2004-06-04 04:06:00) [4]Так ты и координаты квадратные задавай. А чтобы квадрат с квадратными (такое вот сочетание слов) координатами не смотрелся прямоугольником, используй вызов функции glViewport.
По этой ссылке есть описание по его использованию
http://www.gamedev.ru/articles/read.shtml?id=20105