Программирование. Принципы и практика использования C++ Исправленное издание, стр. 171

Как видим, параметр
Axis::xx axisy_max-bottom_marginДля того чтобы идентифицировать результаты, мы изменили метку экрана на строку "
Canvas #2set_label()WindowТеперь добавим ось
yAxis ya(Axis::y, Point(20,300), 280, 10, "y axis");ya.set_color(Color::cyan); // выбираем цветya.label.set_color(Color::dark_red); // выбираем цвет текстаwin.attach(ya);win.set_label("Canvas #3");win.wait_for_button(); // изобразить!Просто для того чтобы продемонстрировать некоторые возможности, мы раскрасили ось
y
На самом деле мы не считаем удачной идею присваивать разные цвета осям x и y. Мы просто хотели показать, как можно задать цвет фигуры и ее отдельных элементов. Использование большого количества цветов не всегда оправдано. В частности, новички часто злоупотребляют раскраской графиков, демонстрируя избыток энтузиазма и недостаток вкуса.
12.7.4. График функции
Что дальше? Теперь у нас есть окно с координатными осями, и кажется естественным нарисовать на нем график функции. Создадим фигуру, представляющую график синуса, и свяжем ее с окном.
Function sine(sin,0,100,Point(20,150),1000,50,50); // график синуса // рисуем sin() в диапазоне [0:100) от (0,0) до (20,150), // используя 1000 точек; для масштабирования координаты // умножаются на 50win.attach(sine);win.set_label("Canvas #4");win.wait_for_button();Здесь объект класса
Functionsinesin()PointТеперь кривая будет заканчиваться на краю окна. Точки, изображенные за пределами окна, игнорируются системой графического пользовательского интерфейса и остаются невидимыми.

12.7.5. Многоугольники
График функции является примером представления данных. Подробно эта тема исследуется в главе 15. Однако в окне можно рисовать и другие объекты, например геометрические фигуры. Эти фигуры используются для создания графических иллюстраций, рисования элементов пользовательского интерфейса (например, кнопок) и просто для украшения результатов работы программы. Объект класса
Polygonsine.set_color(Color::blue); // мы изменили цвет графика синусаPolygon poly; // класс Polygon - это разновидность класса Shapepoly.add(Point(300,200)); // три точки образуют треугольникpoly.add(Point(350,100));poly.add(Point(400,200));poly.set_color(Color::red);poly.set_style(Line_style::dash);win.attach(poly);win.set_label("Canvas #5");win.wait_for_button();На этот раз мы изменили цвет графика синуса (
sinePolygon
12.7.6. Прямоугольник
Экран — это прямоугольник, окно — это прямоугольник и лист бумаги — это прямоугольник. Фактически огромное количество фигур являются прямоугольниками (или прямоугольниками с закругленными углами), потому что это простейшая фигура. Например, его легко описать (координаты левого верхнего угла, ширина и высота, или координаты левого верхнего и правого нижнего углов), как в нем, так и за его пределами легко задать местоположение точки. Кроме того, его можно легко и быстро нарисовать на экране. По этой причине большинство высокоуровневых графических библиотек эффективнее работают с прямоугольниками, чем с любыми другими замкнутыми фигурами. Следовательно, целесообразно описать прямоугольник с помощью отдельного класса
RectanglePolygonRectangleRectangle r(Point(200,200), 100, 50); // левый верхний угол, // ширина, высота