Читайте также: |
|
Постановка задачи. Заполните экран каким-нибудь узором, например, ромбиками, как показано на рис. 8.
Реализация. Положим на форму две кнопки «Рисовать» и «Выход». Для рисования одного ромбика напишем процедуру
put_romb (i, k: integer; col: Tcolor)
с входными параметрами i, k,
где i – номер строки, k – номер столбца. Входной параметр col – это цвет.
Расположим ромбики так: верхний ряд состоит из десяти ромбиков, следующий – из девяти, последний – из одного ромбика. Закрасим ромбы, выбрав цвет случайным образом с помощью функции RGB.
Ниже приведен код основных процедур.
Рис. 8. Узор «Ромбы»
const
d1=15; //длина горизонтальной диагонали ромба
d2=30; //длина вертикальной диагонали ромба
{ Глобальные переменные }
var x0,y0: integer; // координаты центра левого верхнего ромба
procedure put_romb(i, k: integer; col: Tcolor); // Рисование
// ромба. Здесь i – номер строки, k – номер столбца
var x, y: integer;
begin
x:=x0+(k-1)*d1;
y:=y0+(i-1)*d2;
with Form1.Canvas do
begin
Pen.Color:=col;
Brush.Color:=col;
MoveTo(x+d1 div 2, y);
LineTo(x, y-d2 div 2);
LineTo(x-d1 div 2, y);
LineTo(x, y+d2 div 2);
LineTo(x+d1 div 2, y);
FloodFill(x, y, col, fsborder);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,k:integer;
col:TColor;
begin
for i:=1 to 10 do
begin
for k:=i to 10 do
begin
col:=RGB(random(256),random(256),random(256));
put_romb(i, k, col);
end;
x0:=x0 – d1 div 2;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
x0:=d1;
y0:=d2;
end;
Задание. Усовершенствуйте проект так, чтобы каждый горизонтальный ряд ромбов был нарисован своим цветом. Вместо ромбов используйте другие фигуры: треугольники, кружочки и т. п. Расположите ромбики не треугольником, а в виде квадрата.
Дата добавления: 2015-08-20; просмотров: 61 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Глава 1 | | | Рисование поля для различных игр |