Количество пикселей зависит от экрана: самыми распространенными являются 1024×768, 1280×1024, 1450×1050 и 1600×1200. В контексте взаимодействия с компьютером окно рассматривается как прямоугольная область экрана, имеющая определенное предназначение и управляемая программой. Окно размечается точно так же, как и экран. В принципе окно можно интерпретировать как маленький экран.
Например, если программа содержит инструкцию
Simple_window win(tl,600,400,"Canvas");
то это значит, что мы хотим создать прямоугольную область, ширина которой равна 600 пикселям, а высота — 400, чтобы адресовать ее от 0 до 599 слева направо и от 0 до 399 сверху вниз. Область окна, которую можно изобразить на экране, называется
12.6. Класс Shape
Наш основной набор инструментов для рисования на экране состоит из двенадцати классов.
Стрелка означает, что класс, из которого она выходит, может быть использован там, где требуется класс, на который она указывает. Например, класс Polygon
Shape
; иначе говоря, класс Polygon
является разновидностью класса Shape
.Сначала опишем использование следующих классов:
• Simple_window
Window
• Shape
Text
, Polygon
, Line
, Lines
, Rectangle
, Function
и т.д.• Color
Line_style
, Point
• Axis
Позднее (в главе 16) добавим к ним классы графического пользовательского интерфейса:
• Button
In_box
, Menu
и т.д.К этому набору можно было бы более или менее легко добавить много других классов, например
• Spline
Grid
, Block_chart
, Pie_chart
и т.д.Однако описание полного набора инструментов для создания графического пользовательского интерфейса со всеми его возможностями выходит за рамки нашей книги.
12.7. Использование графических примитивов
В этом разделе мы рассмотрим некоторые элементарные примитивы нашей графической библиотеки: Simple_window
Window
, Shape
, Text
, Polygon
, Line
, Lines
, Rectangle
, Color
, Line_style
, Point
, Axis
. Цель этого обзора — дать читателям представление о том, что можно сделать с помощью этих средств без углубления в детали реализации этих классов. Каждый из этих классов будет подробно изучен в следующих главах.Начнем с простой программы, объясняя ее строчка за строчкой и демонстрируя результаты ее работы на экране. Когда вы запустите эту программу, то увидите, как изменяется изображение при добавлении новых и модификации существующих фигур, расположенных в окне. В принципе такой анализ напоминает анимацию.
12.7.1. Графические заголовочные файлы и функция main
Во-первых, включим заголовочные файлы, в которых определены графические классы и класс графического пользовательского интерфейса.
#include "Window.h" // обычное окно
#include "Graph.h"
или
#include "Simple_window.h" // если нам нужна кнопка Next
#include "Graph.h"
Как вы, возможно, уже догадались, файл Window.h
Graph.h
— инструменты, связанные с рисованием фигур (включая текст) в окне. Эти средства определены в пространстве имен Graph_lib
. Для упрощения обозначений мы используем директиву using namespace
, чтобы получить доступ к именам из пространства Graph_lib
.using namespace Graph_lib;
Как обычно, функция main()
int main ()
try
{
// ...здесь находится наш код...
}
catch(exception& e) {
// сообщения об ошибках
return 1;
}
catch(...) {
// другие сообщения об ошибках
return 2;
}