Программирование. Принципы и практика использования C++ Исправленное издание, стр. 173
12.7.10. И многое другое
Приведем без объяснений еще один фрагмент кода
Circle c(Point(100,200),50);Ellipse e(Point(100,200), 75,25);e.set_color(Color::dark_red);Mark m(Point(100,200),'x');ostringstream oss;oss << "screen size: " << x_max() << "*" << y_max() << "; window size: " << win.x_max() << "*" << win.y_max();Text sizes(Point(100,20),oss.str());Image cal(Point(225,225),"snow_cpp.gif"); // 320×240 пикселей, // формат gifcal.set_mask(Point(40,40),200,150); // отобразить рисунок // в центреwin.attach(c);win.attach(m);win.attach(e);win.attach(sizes);win.attach(cal);win.set_label("Canvas #12");win.wait_for_button();Можете ли вы догадаться, что делает этот фрагмент?

istringstream12.8. Запуск программы
Мы показали, как можно создать окно и нарисовать в нем разные фигуры. В следующих главах мы покажем, как определен класс
ShapeДля того чтобы выполнить эту программу, требуется больше, чем для других программ, описанных ранее. Помимо кода в функции
main()Итак, можно сказать, что наша программа состоит из четырех частей.
• Код нашей программы (
main()• Наша интерфейсная библиотека (
WindowShapePolygon• Библиотека FLTK.
• Стандартная библиотека языка C++.
Кроме того, мы неявно используем операционную систему. Оставляя в стороне операционную систему и стандартную библиотеку, мы можем проиллюстрировать организацию графической программы следующим образом.

Как заставить эту программу работать, объясняется в приложении Г.
12.8.1. Исходные файлы
Наша библиотека графики и графического пользовательского интерфейса состоит лишь из пяти заголовочных и трех исходных файлов.
•Заголовки
•Point.h
•Window.h
•Simple_window.h
•Graph.h
•GUI.h
•Исходные файлы
•Window.cpp
•Graph.cpp
•GUI.cpp
До главы 16 мы можем игнорировать файлы графического пользовательского интерфейса.
Задание
Это задание напоминает программу “Привет, мир!”. Его цель — ознакомить вас с простейшими графическими средствами.
1. Напишите программу, создающую пустой объект класса
Simple_windowGraph.hWindow.hGUI.hSimple_Window.hGraph.cppWindow.cpp2. Добавьте примеры из раздела 12.7 один за другим, сравнивая их друг с другом.
3. Выполните программу, внеся небольшие изменения (например, измените цвет, местоположение фигур или количество точек) в каждом из примеров.
Контрольные вопросы
1. Зачем нужна графика?
2. Почему нельзя обойтись без графики?
3. Чем графика интересна программисту?
4. Что такое окно?
5. В каком пространстве имен находятся наши классы графического интерфейса (наша графическая библиотека)?
6. Какие графические файлы необходимы для использования графических средств из нашей библиотеки?
7. Что представляет собой простейшее окно?
8. Что представляет собой минимальное окно?
9. Что такое метка окна?
10. Как задать метку окна?
11. Что собой представляют экранные, оконные и математические координаты?
12. Приведите примеры простых фигур, которые можно отобразить на экране.
13. Какие команды связывают фигуру с окном?
14. Какие основные фигуры можно использовать для того, чтобы нарисовать шестиугольник?
15. Как вывести текст в окне?
16. Как поместить в окне фотографию вашего лучшего друга или подруги? Напишите свою программу.
17. Представьте, что вы создали объект класса
Window18. Представьте, что вы создали объект класса
ShapeТермины

Упражнения
Для выполнения приведенных ниже изображений рекомендуем использовать класс
Simple_window1. Нарисуйте прямоугольник как объект класса
RectanglePolygonPolygonRectangle2. Нарисуйте объект класса
Rectangle