3. Выполните программу, внеся небольшие изменения (например, измените цвет, местоположение фигур или количество точек) в каждом из примеров.
Контрольные вопросы
1. Зачем нужна графика?
2. Почему нельзя обойтись без графики?
3. Чем графика интересна программисту?
4. Что такое окно?
5. В каком пространстве имен находятся наши классы графического интерфейса (наша графическая библиотека)?
6. Какие графические файлы необходимы для использования графических средств из нашей библиотеки?
7. Что представляет собой простейшее окно?
8. Что представляет собой минимальное окно?
9. Что такое метка окна?
10. Как задать метку окна?
11. Что собой представляют экранные, оконные и математические координаты?
12. Приведите примеры простых фигур, которые можно отобразить на экране.
13. Какие команды связывают фигуру с окном?
14. Какие основные фигуры можно использовать для того, чтобы нарисовать шестиугольник?
15. Как вывести текст в окне?
16. Как поместить в окне фотографию вашего лучшего друга или подруги? Напишите свою программу.
17. Представьте, что вы создали объект класса Window
18. Представьте, что вы создали объект класса Shape
Термины
Упражнения
Для выполнения приведенных ниже изображений рекомендуем использовать класс Simple_window
1. Нарисуйте прямоугольник как объект класса Rectangle
Polygon
. Сделайте линии объекта класса Polygon
красными, а линии объекта класса Rectangle
синими.2. Нарисуйте объект класса Rectangle
3. Нарисуйте ваши инициалы высотой 150 пикселей. Используйте толстую линию. Нарисуйте каждый инициал другим цветом.
4. Нарисуйте доску для игры в крестики-нолики размером 3×3, чередуя белые и красные квадраты.
5. Нарисуйте красную рамку шириной один дюйм вокруг прямоугольника, высота которого составляет три четверти высоты вашего экрана, а ширина — две трети ширины экрана.
6. Что произойдет, если вы нарисуете фигуру, которая не помещается в окне? Что произойдет, если вы нарисуете окно, которое не помещается на экране? Напишите две программы, иллюстрирующие эти эффекты.
7. Нарисуйте двумерный дом анфас, как это делают дети: дверь, два окна и крыша с дымовой трубой. Детали можете выбрать сами, можете даже нарисовать дымок из трубы.
8. Нарисуйте пять олимпийских колец. Если помните их цвета, то раскрасьте их.
9. Выведите на экран фотографию вашего друга. Напишите его имя в заголовке окна и в заголовке внутри окна.
10. Нарисуйте диаграмму файлов из раздела 12.8.
11. Нарисуйте ряд правильных многоугольников, вложенных друг в друга. Наиболее глубоко вложенный многоугольник должен быть равносторонним треугольником, вложенным в квадрат, вложенный в пятиугольник, и т.д. Для любителей математики: пусть все точки каждого N
(N+1)
- многоугольника.12. Суперэллипс — это двумерная фигура, определенная уравнением
Поищите в веб информацию о суперэллипсе, чтобы лучше представить его себе. Напишите программу, которая рисует звездообразные шаблоны, соединяя точки, лежащие на суперэллипсе. Пусть параметры a
b
, m
, n
и N
вводятся как аргументы. Выберите N
точек на суперэллипсе, определенном параметрами a
, b
, m
и n
. Пусть эти точки лежат на равном расстоянии друг от друга. Соедините каждую из этих N
точек с одной или несколькими другими точками (если хотите, можете задать количество таких точек с помощью дополнительного аргумента или использовать число N–1
, т.е. все другие точки).13. Придумайте способ раскрасить контур суперэллипса из предыдущего упражнения. Нарисуйте разные линии разным цветом.
Послесловие
Circle
Polygon
. Графика отличается от других приложений тем, что, создавая графические программы, программист может сразу видеть объекты классов на экране. Иначе говоря, состояние такой программы непосредственно доступно для наблюдения — в большинстве приложений этой возможности мы лишены. Это непосредственное соответствие между идеями, кодом и выводом делает программирование графики очень привлекательным. Однако помните, что графика — это лишь иллюстрация общей идеи использования классов для выражения основных понятий в виде кода. Эта идея носит намного более общий характер: все наши идеи могут быть выражены в коде либо в виде класса, либо в виде объекта класса, либо в виде совокупности классов.Глава 13
Графические классы