Программирование. Принципы и практика использования C++ Исправленное издание, стр. 172
win.attach(r);win.set_label("Canvas #6");win.wait_for_button();Этот фрагмент открывает на экране следующее окно.

Обратите, пожалуйста, внимание на то, что нарисовать ломаную, соединяющую четыре точки, для создания объекта класса
RectangleClosed_polylineRectangleOpen_polylineClosed_polyline poly_rect;poly_rect.add(Point(100,50));poly_rect.add(Point(200,50));poly_rect.add(Point(200,100));poly_rect.add(Point(100,100));win.attach(poly_rect);Изображение (image) объекта
poly_rectpoly_rectRectanglepoly_rect.add(Point(50,75));Прямоугольник не может состоять из пяти точек.

Важно понимать, что объект класса
RectangleRectangle12.7.7. Заполнение
До сих пор наши фигуры были нарисованы схематично. Их можно заполнить цветом.
r.set_fill_color(Color::yellow); // цвет внутри прямоугольникаpoly.set_style(Line_style(Line_style::dash,4));poly_rect.set_style(Line_style(Line_style::dash,2));poly_rect.set_fill_color(Color::green);win.set_label("Canvas #7");win.wait_for_button();Мы также решили, что прежний стиль линии в нашем треугольнике (
polypoly_rect
Если внимательно присмотреться к объекту
poly_rectЗаполнить цветом можно любую замкнутую фигуру (рис. 13.9). Прямоугольники просто весьма удобны для этого.
12.7.8. Текст
TextText t(Point(150,150), "Hello, graphical world!");win.attach(t);win.set_label("Canvas #8");win.wait_for_button();
Из элементарных графических элементов, показанных в этом окне, можно создать сколь угодно сложные и утонченные фигуры. Пока мы просто отметим особенность кода в этой главе: они не содержат циклов, условных конструкций, а все данные в них встроены. Выходная информация скомпонована из примитивов простейшим образом. Как только мы начнем составлять из этих примитивов сложные фигуры с помощью данных и алгоритмов, все станет намного интереснее.
Мы видели, как можно управлять цветом текста: метка оси (см. раздел 12.7.3) просто представляет собой объект класса
Textt.set_font(Font::times_bold);t.set_font_size(20);win.set_label("Canvas #9");win.wait_for_button();Здесь мы увеличили буквы в строке "
Hello, graphical world!12.7.9. Изображения
Мы можем также загружать изображения из файлов.
Image ii(Point(100,50),"image.jpg"); // файл 400×212 пикселей // в формате jpgwin.attach(ii);win.set_label("Canvas #10");win.wait_for_button();Файл
image.jpgЭта фотография относительно велика и размещается поверх нашего текста и фигур. Итак, рисунок требуется немного улучшить. Для этого мы немного сдвинем фотографию.

ii.move(100,200);win.set_label("Canvas #11");win.wait_for_button();Обратите внимание на то, что части фотографии, не попавшие в окно, не представлены на экране, поскольку то, что выходит за его пределы, обрезается.
