private:
float x. y:
}:
Отметим, что когда вызывается glVertex2f(), величины .г и у приводятся к типу GLfloat. Чаще всего в этом нет необходимости, поскольку тип GLfloat определен в большинстве систем как float.
class IntRect. Выровненный прямоугольник с целыми координатами При описании порта просмотра нам необходим выровненный прямоугольник, имеющий целые координаты. Класс IntRect предоставляет эту функциональность в следующем коде:
class IntRect {
public:
IntRect() {1=0: г = 100: b - 0: t - 100: } // constructors // конструкторы
1 Студенты, предпочитающие писать на С, могут определить подобные типы с помощью конструкции Struct.
Дополнительные инструменты для рисования
IntRectCint left, int right, int bottom, int top)
(1 - left; r - right; b - bottom; t = top:} void set(int left, int right, int bottom, int top)
{1 - left; r - right: b - bottom; t - top:} void draw(void); // draw this rectangle using OpenGL // рисуем данный прямоугольник с использованием OpenGL private:
int 1. r, b, t:
}
class RealRect. Выровненный прямоугольник с вещественными координатами Мировому окну необходим выровненный прямоугольник, указывающий свои границы в вещественных числах. (Данный класс настолько похож на IntRect, что некоторые программисты предпочли бы по данному образцу определить класс, который содержал бы как целые, так и вещественные координаты.) Код класса следующий:
class RealRect {
same as IntRect except use float instead of int
}
II такой же. как IntRect. только испопьзует float вместо II int
Практические упражнения
3.4.1. Реализация классов Расширьте приведенные выше классы, добавив в них другие, полезные на ваш взгляд, функции, а также реализовав некоторые уже объявленные ранее функции, такие как drawO для класса IntRect.
3.4.2. Объявление класса Canvas
Мы объявляем интерфейс класса Canvas в заголовочном файле Canvas. h, как показано в листинге 3.6. Элементы данных файла Canvas. h включают в себя текущую позицию, окно, порт просмотра и преобразование окно - порт просмотра.
Листинг 3.6. Заголовочный файл Canvas.h