Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Рисование узоров

Введение | Для построения графиков | Построение графиков элементарных функций | В случайных местах | Движение двоичного образа по фоновой картинке | В динамических приложениях | Перемещение картинок | События от мыши | Движение образа по удерживанию левой кнопки мыши | Код клавиши |


Читайте также:
  1. Геометрические размеры диффузоров
  2. Значение узоров кофейной гущи
  3. Рисование в таблице TDrawGrid
  4. Рисование методом тычка
  5. Рисование полного кадра
  6. Рисование поля для различных игр
  7. Рисование с натуры

Постановка задачи. Заполните экран каким-нибудь узором, например, ромбиками, как показано на рис. 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| Рисование поля для различных игр

mybiblioteka.su - 2015-2024 год. (0.005 сек.)