Корень «ortho» появляется потому, что настройка окна таким способом фактически устанавливает так называемую ортогональную проекцию (orthographic projection) для трехмерного случая, как мы увидим в главе 7.
Дополнительные инструменты для рисования
Стоит вернуться назад и посмотреть, что мы использовали для окна и порта просмотра в наших ранних программах на OpenGL в главе 2. В листинге 2.5 и на рис. 2.8 в программах использовались такие команды:
1. Команды, устанавливающие размер экранного окна 640 на 480. В main ():
g1utIn1tWindowSize(640, 480) // set screen window size // устанавливаем размер окна Величина порта просмотра принималась по умолчанию, поскольку еще не было команды gl Viewport О; а по умолчанию порт просмотра - это экранное окно целиком.
2. Набор команд в mylnitO:
g1MatrixMode(GL_PR0JECTI0N): glLoadldentityO:
glu0rtho2D(0.0, 640.0. 0.0. 480.0):
Эти команды устанавливают мировое окно в выровненный прямоугольник с углами (0,0) и (640,0, 480,0), как раз в соответствии с размером порта просмотра, так что основное преобразование окно - порт просмотра ничего не изменило. Такой выбор представляется разумным для первых программ.
Пример 3.2.2. Снова построение графика функции sine
Собрав вместе предшествующие компоненты, можно увидеть, как вычертить форму графика функции sinc() с рис. 3.1. При использовании OpenGL достаточно задать окно и порт просмотра. В листинге 3.2 приведен код, отображающий график этой функции для значений х с малым шагом в промежутке от -4 до 4 в порт просмотра шириной 640 и высотой 480. (Окно сделано несколько шире, чем диапазон графика, для того чтобы оставить вокруг графика некоторое пространство для красоты.)
Листинг 3.2. Построение графика функции sine
void myDisplay(void)
// plot the sine function, using world coordinates
// строим график функции sine, используя мировые координаты
{
setWindow(-5.0, 5.0. -0.3. 1.0): // set the window // устанавливаем окно
setViewporttO. 640. 0. 480): // set the viewport // устанавливаем порт просмотра