Программирование. Принципы и практика использования C++ Исправленное издание, стр. 170
#include "Window.h" // обычное окно#include "Graph.h"или
#include "Simple_window.h" // если нам нужна кнопка Next#include "Graph.h"Как вы, возможно, уже догадались, файл
Window.hGraph.hGraph_libusing namespaceGraph_libusing namespace Graph_lib;Как обычно, функция
main()int main ()try{ // ...здесь находится наш код...}catch(exception& e) { // сообщения об ошибках return 1;}catch(...) { // другие сообщения об ошибках return 2;}12.7.2. Почти пустое окно
Здесь мы не будем обсуждать обработку ошибок (см. главу 5, в частности раздел 5.6.3), а сразу перейдем к описанию графики в функции
main()Point tl(100,100); // левый верхний угол нашего окнаSimple_window win(tl,600,400,"Canvas"); // координаты окна tl задают положение левого верхнего угла // размер окна 600*400 // заголовок: Canvaswin.wait_for_button(); // изобразить!Этот фрагмент программы создает объект класса
Simple_windowNext#includeSimple_window.hWindow.hPoint(100,100)PointSimple_window win(Point(100,100),600,400,"Canvas"); Однако мы хотим использовать точку (100,100) несколько раз, поэтому удобнее присвоить ей символическое имя. Число 600 — это ширина окна, 400 — его высота, а строка "
CanvasДля того чтобы окно действительно было нарисовано на экране, мы должны передать управление системе графического пользовательского интерфейса. Для этого вызываем функцию
win.wait_for_button()
Для дальнейшей демонстрации нашей программы мы удалили с экрана все лишнее, оставив только само окно (см. ниже).
Реальный размер окна (в дюймах) зависит от разрешающей способности вашего экрана. Кроме того, на некоторых экранах размер пикселей больше, чем на других.

12.7.3. Оси координат
Практически пустое окно не очень интересно, поэтому попробуем добавить в него какую-нибудь информацию. Что бы мы хотели изобразить? Давайте вспомним, что графика — это не только игры и развлечения, и сделаем что-нибудь серьезное и сложное, например оси координат. График без осей координат, как правило, ужасен. Невозможно себе представить, какие данные можно изобразить, не пользуясь осями координат. Может быть, вам удастся оправдать это в приложении к программе, но намного лучше добавить оси координат; люди часто не читают объяснений, а хорошее графическое представление обычно не нуждается в комментариях. Итак, нам необходимы координатные оси.
Axis xa(Axis::x, Point(20,300), 280, 10, "x axis"); // создаем // объект Axis // класс Axis — разновидность класса Shape // Axis::x означает горизонтальную ось // начало оси — в точке (20,300) // длина оси — 280 пикселей 10 делений // "Ось x" — метка осиwin.attach(xa); // связываем объект xa с окном winwin.set_label("Canvas #2"); // изменяем метку окнаwin.wait_for_button(); // изобразить!Последовательность действий такова: создаем объект класса
Axis