3.7. Рисование окружностей и дуг

Логотип университета штата Массачусетс 3.6.14. Вращающиеся пентаграммы

Рис. 3.41. Логотип университета штата Массачусетс 3.6.14. Вращающиеся пентаграммы: анимация На рис. 3.42 изображена пентаграмма, повернутая на некоторый угол относительно Пентагона, причем соответствующие их вершины соединены. Напишите программу, анимирующую эту фигуру. Данная композиция нарисована с использованием некоторого начального угла А поворота пентаграммы. После короткой паузы эта пентаграмма стирается, а затем снова рисуется с немного большим углом А. Процесс повторяется до нажатия любой клавиши.

Вращающиеся пентафигуры

Рис. 3.42. Вращающиеся пентафигуры

3.7. Рисование окружностей и дуг Рисование окружности эквивалентно рисованию я-угольника с большим числом вершин. Этотя-уголь-ник напоминает окружность (если его не изучать слишком пристально). Подпрограмма drawCircleO, представленная в листинге 3.13, рисует правильный 50-угольник методом простой передачи своих параметров в ngonO. Было бы более целесообразно написать drawCircleO с нуля, основываясь на коде листинга 3.11.

Листинг 3.13. Рисование круга на базе 50-угольника

void drawCircle(Point2 center, float radius) {
const int numVerts = 50"images/tmp8E4A-125.png" alt="Задание дуги" />

Рис. 3.43. Задание дуги Нам нужна подпрограмма drawArcO, рисующая дугу окружности. Функция, приведенная в листинге 3.14, аппроксимирует дугу как часть и-угольника с использованием команд moveToO и lineToO. Последовательные точки дуги находятся вычислением cos( ) и sin( ) каждый раз внутри главного цикла. Если величина sweep отрицательна, то угол автоматически убывает.


⇐ Предыдущая| |Следующая ⇒