ВУЗ:
Составители:
Рубрика:
Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях»
Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su
44
glutMouseFunc() определяет обработчика команд от мыши, а glutIdleFunc() задает
функцию, которая будет вызываться каждый раз, когда нет событий от пользователя.
Контроль всех событий происходит внутри бесконечного цикла в функции void
glutMainLoop(void) которая обычно вызывается в конце любой программы,
использующей GLUT.
Вершины и примитивы
Определение атрибутов вершины
Под вершиной понимается точка в трехмерном пространстве, координаты которой
можно задавать следующим образом:
void glVertex[2 3 4][s i f d](type coords)
void glVertex[2 3 4][s i f d]v(type *coords)
Координаты точки задаются максимум четырьмя значениями: x, y, z, w, при этом
можно указывать два (x,y) или три (x,y,z) значения, а для остальных переменных в
этих случаях используются значения по умолчанию: z=0, w=1. Как уже было сказано
выше, число в названии команды соответствует числу явно задаваемых значений, а
последующий символ – их типу.
Координатные оси расположены так, что точка (0,0) находится в левом нижнем углу
экрана, ось x направлена влево, ось y- вверх, а ось z- из экрана. Это расположение осей
мировой системы координат, в которой задаются координаты вершин объекта, другие
системы координат будут рассмотрены ниже.
Однако чтобы задать какую-нибудь фигуру одних координат вершин недостаточно, и
эти вершины надо объединить в одно целое, определив необходимые свойства. Для
этого в OpenGL используется понятие примитивов, к которым относятся точки, линии,
связанные или замкнутые линии, треугольники и так далее. Задание примитива
происходит внутри командных скобок:
void glBegin(GLenum mode)
void glEnd(void)
Параметр mode определяет тип примитива, который задается внутри и может
принимать следующие значения:
GL_POINTS каждая вершина задает координаты некоторой точки.
GL_LINES каждая отдельная пара вершин определяет отрезок; если задано
нечетное число вершин, то последняя вершина игнорируется.
GL_LINE_STRIP каждая следующая вершина задает отрезок вместе с
предыдущей.
GL_LINE_LOOP отличие от предыдущего примитива только в том, что
последний отрезок определяется последней и первой вершиной, образуя
замкнутую ломаную.
GL_TRIANGLES каждая отдельная тройка вершин определяет треугольник;
если задано не кратное трем число вершин, то последние вершины
игнорируются.
GL_TRIANGLE_STRIP каждая следующая вершина задает треугольник вместе
с двумя предыдущими.
GL_TRIANGLE_FAN треугольники задаются первой и каждой следующей
парой вершин (пары не пересекаются).
Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях» glutMouseFunc() определяет обработчика команд от мыши, а glutIdleFunc() задает функцию, которая будет вызываться каждый раз, когда нет событий от пользователя. Контроль всех событий происходит внутри бесконечного цикла в функции void glutMainLoop(void) которая обычно вызывается в конце любой программы, использующей GLUT. Вершины и примитивы Определение атрибутов вершины Под вершиной понимается точка в трехмерном пространстве, координаты которой можно задавать следующим образом: void glVertex[2 3 4][s i f d](type coords) void glVertex[2 3 4][s i f d]v(type *coords) Координаты точки задаются максимум четырьмя значениями: x, y, z, w, при этом можно указывать два (x,y) или три (x,y,z) значения, а для остальных переменных в этих случаях используются значения по умолчанию: z=0, w=1. Как уже было сказано выше, число в названии команды соответствует числу явно задаваемых значений, а последующий символ – их типу. Координатные оси расположены так, что точка (0,0) находится в левом нижнем углу экрана, ось x направлена влево, ось y- вверх, а ось z- из экрана. Это расположение осей мировой системы координат, в которой задаются координаты вершин объекта, другие системы координат будут рассмотрены ниже. Однако чтобы задать какую-нибудь фигуру одних координат вершин недостаточно, и эти вершины надо объединить в одно целое, определив необходимые свойства. Для этого в OpenGL используется понятие примитивов, к которым относятся точки, линии, связанные или замкнутые линии, треугольники и так далее. Задание примитива происходит внутри командных скобок: void glBegin(GLenum mode) void glEnd(void) Параметр mode определяет тип примитива, который задается внутри и может принимать следующие значения: GL_POINTS каждая вершина задает координаты некоторой точки. GL_LINES каждая отдельная пара вершин определяет отрезок; если задано нечетное число вершин, то последняя вершина игнорируется. GL_LINE_STRIP каждая следующая вершина задает отрезок вместе с предыдущей. GL_LINE_LOOP отличие от предыдущего примитива только в том, что последний отрезок определяется последней и первой вершиной, образуя замкнутую ломаную. GL_TRIANGLES каждая отдельная тройка вершин определяет треугольник; если задано не кратное трем число вершин, то последние вершины игнорируются. GL_TRIANGLE_STRIP каждая следующая вершина задает треугольник вместе с двумя предыдущими. GL_TRIANGLE_FAN треугольники задаются первой и каждой следующей парой вершин (пары не пересекаются). Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su 44
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »