Форум: "Игры";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Вниз
Как вращать, например, квадрат без искажений в OpenGL? Найти похожие ветки
← →
Inspired © (2004-06-04 00:59) [0]Доброе время суток.
Как вращать, например, квадрат без искажений в 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], то он сразу выглядит прямоугольником, а при повороте сплющивается по вертикали.
А нужен обычный правильный вращающийся квардат.
Подскажите, как с этим бороться?
← →
Magikan (2004-06-04 04:06) [1]Так ты и координаты квадратные задавай. А чтобы квадрат с квадратными (такое вот сочетание слов) координатами не смотрелся прямоугольником, используй вызов функции glViewport.
По этой ссылке есть описание по его использованию
http://www.gamedev.ru/articles/read.shtml?id=20105
← →
Inspired © (2004-06-06 16:28) [2]ОК, попробую, большое спс.
← →
Andr (2004-06-09 14:06) [3]
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);
← →
MeF88 (2004-06-09 16:11) [4]
> Andr (09.06.04 14:06) [3]
Лучше уж через glViewport...
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c