Составление алгоритмов для работы с графикой

Решение домашней задачи:

Составить программу рисования кругов вдоль левого края графического окна радиуса 20 зеленого цвета.

uses graphabc;

var x, y, r : integer; begin r:=20; x:=20; y:=20; while y<480 do begin SetBrushColor(clGreen);

circle(x,y,r);

y:=y+40; end; end.

Задача 1.

Напишите программу, которая рисует 10 концентрических окружностей с центром в середине графического окна (размер окна по умолчанию 640х480).

uses graphabc; var x, y, r : integer; begin r:=200; x:=300; y:=250; SetBrushStyle(bsClear); for var i:=1 to 10 do begin circle(x,y,r); r:=r-20; end; end.

Задание 1

Пример 18.3 стр. 92: нарисовать на экране 10 окружностей с толщиной линий 3 пикселя. Расположение окружностей, их радиусы и цвет определяются случайным образом.

uses Graphabc; var i, x, y, r : Integer; begin SetPenWidth(3); //толщина линий 3 пикселя SetBrushStyle(bsclear); // прозрачная заливка for i:=1 to 10 do begin x:=random(600); // x случайное число 0..599 y:=random(400); // y случайное число 0..399 R:=random(150); // r случайное число 0..149 SetPenColor(clRandom); // цвет линий выбирается случайным образом circle(x,y,r); // окружность end; end.

Выполните упражнения:

1. Измените программу, чтобы можно было изобразить а) 20 кругов; б) 100 кругов

2. Измените программу так, чтобы рисовались круги радиусом не более 20.

3. Количество кругов установите равным 10 000.

4. Измените программу так, чтобы пользователь мог вводить количество отображаемых на экране кругов.

Задание 2

Разберите работу программы, которая строит случайным образом изображения 20 горизонтальных отрезков длиной 30 пикселей:

uses Graphabc; var i, x, y : Integer; begin for i:=1 to 20 do begin x:=random(600); // x случайное число 0..599 y:=random(400); // y случайное число 0..399 line(x,y,x+30,y); // горизонтальный отрезок длиной 30 пикселей end; end.

Выполните упражнения:

1. Задайте в программе толщину отрезка 3 пикселя.

2. Измените программу, чтобы толщина отрезка была случайным числом.

3. Измените программу, чтобы отрезки были разных цветов, а цвета выбирались случайным образом.

4. Измените программу так, чтобы можно было вводить количество отображаемых на экране отрезков.

5. Измените программу, чтобы вместо горизонтальных отрезков изображались вертикальные.

6. Измените программу, чтобы вместо горизонтальных отрезков изображались диагональные.

7. Измените программу, чтобы вместо цикла for использовался цикл while.


Задание 3

Разберите работу программы, которая заполняет кругами графическое окно:

uses Graphabc; var x, y, r : integer; begin x:=10;

y:=10;

r:=10; while y< 480 do //для рисования линий кругов одна под другой begin while x<640 do //одна горизонтальная линия кругов begin circle(x,y,r); x:=x+20; end; y:=y+20; //спускаемся вниз x:=10; //начинаем новую горизонтальную линию end; end.

Выполните упражнения:

1. Измените в программе значение r=10 на r=20.

2. Измените программу так, чтобы экран заполнялся кругами с радиусом 20 без пересечений.

3. Измените программу так, чтобы все круги были красного цвета.

4. Измените программу так, чтобы графическое окно можно было заполнять кругами разного радиуса.