Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Графика Паскаль.doc
Скачиваний:
6
Добавлен:
23.08.2019
Размер:
1.48 Mб
Скачать

5. Рисование дуг

Для рисования окружностей, эллипсов и эллиптических дуг используются следующие процедуры:

Команда

Действие

Circle(x,y,r)

Рисование окружности с центром в точке (х.у) радиусом г

EUipse(x,y,0,360,rx,ry)

Рисование эллипса с центром в точке (х,у), горизонтальным радиусом гх и вертикальным радиусом гу

Ellipse(x,y,an,ak,rx,ry)

Рисование эллиптической дуги, ограниченной углами an и ак (ап<ак)

Чего ещё не хватает нашей картинке? Романтики! «Светит месяц, светит ясный...» Вот и добавим серпик месяца.

• На небе, естественно, будет всего один месяц, но всё же есть смысл создать отдельную процедуру Luna — так легче будет ориентироваться в программе:

Разбор полётов:

  • с помощью процедуры Ellipse можно рисовать не только эллипсы, но и эллиптические дуги — для указания начального и конечного углов дуги и служат третий и четвёртый параметры;

  • команда Ellipse(x,y,239,95,30.30) выводит дугу радиусом 30 пикселей от 239 до 95 градусов:

Замечание.239=95+144.

  • команда Ellipse(x-20,y-5,275,55,30,30) рисует дугу с центром, смещённым относительно центра первого эллипса на 20 пикселей влево и на 5 — вверх, от 275 до 55 градусов:

• Поместите луну в левый верхний угол.

• Поставьте домик на основу — травку, лужайку, землю...

Наша картинка готова! • Сохраните файл.

Коротко о главном

  • Команды MoveTo и MoveRel перемещают графический указатель в указанную точку в абсолютных и относительных координатах.

  • Команды LineTo и LineRel рисуют отрезок от графического указателя до указанной точки (в абсолютных и относительных координатах).

  • Для рисования отдельных фигур удобно создавать процедуры, в которых используются команды рисования в относительных координатах.

  • В качестве параметров таким процедурам передаются координаты, цвет, размер фигуры.

  • Команда Circle выводит окружность.

  • Команда Ellipse выводит эллипс или эллиптическую дугу.

Типичные ошибки

При рисовании эллипса помните, что углы указываются в градусах, отсчёт идёт против часовой стрелки.

Если необходимо нарисовать дугу, проходящую через нулевой градус, разбивайте её на две части — «до нуля» и «после нуля».

В процедуре, с помощью которой выводятся фигуры в разные места экрана, используйте относительные координаты. Если необходимо использовать процедуры Rectangle, Bar, Circle, Ellipse, указывайте их координаты относительно входных параметров, (например, Circle(x+20,y-50,40)).

Задание к уроку

Задание 1

• Создайте процедуру, рисующую квадрат по заданным координатам левого верхнего угла (х,у) и длине стороны s:

• Создайте программу, выводящую 4 квадрата с вершиной в точке (200,100) и сторонами 20, 40, 60 и 80:

Задание 2

• Создайте процедуру, выводящую круг с центром в точке (х.у), радиусом г, цвета с:

• Создайте процедуру, выводящую два круга с центром в точке (х.у), радиусами г и 2 г, цвета с:

• Создайте процедуру, выводящую на экран эллипс с центром в точке (х.у), вертикальным радиусом г, горизонтальным — в два раза больше вертикального:

• Дополните процедуру так, чтобы у эллипса появились «ушки» радиусом 10:

• Создайте программу, выводящую на экран несколько «ушастых» эллипсов разного размера.

Задание 3

• Создайте процедуру, выводящую на экран правую полуокружность по заданным координатам центра (х,у) и радиусу г:

• Создайте программу, выводящую на экран 5 дуг с общим центром (320,240) и радиусами: первый — 30 пикселей, каждый последующий — на 20 пикселей больше.

Задание 4

• Создайте процедуру, выводящую на экран «птичку» (размер клетки 10 пикселей, координаты выделенной точки (х.у) передаются в процедуру как параметры):

• Добавьте в процедуру Ptichka параметр s, задающий величину клетки:

• Создайте программу, выводящую на экран несколько «птичек» разных размеров.

Задание 5

Создайте процедуру, рисующую квадрат по заданным координатам центра и половине длины стороны. Выведите «коридор» из квадратов:

Задание 6

Создайте процедуру, рисующую окружность по заданным координатам центра и радиусу. Выведите:

• «трубу» из окружностей:

Задание 7

Создайте процедуру, рисующую эллипс по заданным координатам центра и вертикальному радиусу (горизонтальный радиус вдвое превышает вертикальный). Выведите «воронку»:

Задание 8

Создайте процедуру, рисующую дугу по заданным координатам центра, радиусу и значению второго угла (первый угол равен нулю). Выведите «ракушку»:

Задание 9

Создайте процедуру, рисующую снежинку по заданным координатам центра и цвету. Изобразите «снегопад»:

Задание 10

Создайте процедуру, рисующую «облако» по заданным координатам центра, радиусу дуг и цвету. Изобразите «облака»:

Указание. Следует учесть, что при построении дуги Pascal не может перейти через нулевой градус (например, от 270 до 90). Поэтому правую дугу придётся создать из двух частей: от 0 до 90 градусов и от 270 до 360 градусов (см. задание 6).

Задание 11

Создайте процедуру, рисующую символ Инь-Янь по заданным координатам центра, радиусу дуг и цвету. Выведите на экран несколько символов:

Задание 12

Создайте процедуру, рисующую «перо Жар-птицы» по заданным координатам, радиусу дуги и цвету. • Выведите на экран несколько перьев:

Урок №7

Цикл с параметром

Сегодня вы научитесь:

  • Использовать оператор цикла для организации повторения блока команд.

  • Использовать генератор случайных чисел.

  • Рисовать точки.

При выполнении заданий предыдущих уроков вас, наверное, не покидала мысль о том, что многое гораздо проще было бы сделать с помощью цикла. Действительно, вспомните хотя бы забор на нашей картине...

В языке Pascal существует несколько типов циклических конструкций, с одним из которых мы сегодня и познакомимся.