Графика
Для рисования статичных рисунков используется компонент PaintBox (панель System). Этот компонент размещается на форме в виде прозрачного пунктирного квадрата, и в его пределах можно рисовать. Рисование выполняется обращением к свойству Canvas (графическая канва) этого компонента: PaintBox1.Canvas. У него в свою очередь есть свойство Pixels (PaintBox1.Canvas.Pixels), которое представляет собой матрицу, двумерный массив заданного размера - поточечный образ канвы, каждый элемент - отдельная точка. В Pixels[] отсчет точек (пикселов экрана) начинается с 0. Координаты x, y отсчитываются от верхнего левого угла, то есть он считается точкой с координатой (0, 0), увеличение по оси x идет слева направо, а по оси y - сверху вниз. Для конкретной точки указывается цвет. Функция RGB() формирует цвет комбинацией интенсивности красного, зеленого и синего (интенсивность задается числом от 0 до 255). Например, черный - RGB(0,0,0), красный - rgb(255,0,0), синий - rgb(0,0,255), белый - rgb(255,255,255). Цель работы - создать программу, выполняющую следующие действия: 1. Разместить на форме компонент PaintBox. 2. Заполнить доступную канву 300 красными точками в случайных позициях по нажатиям на некоторую кнопку. 3. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка. 4. Записать код в обработчике нажатия.
procedure TForm1.Button1Click(Sender: TObject); randomize; 5. Изменить RGB(255,0,0) на RGB(random(255),random(255),random(255)).
6. Заполнить фон черным цветом перед началом выполнения программы с помощью метода канвы FillRect. Метод вызывается с указанием прямоугольной области заливки цветом: FillRect(Rect(0, 0, 100, 100)) // координаты верхнего левого и правого нижнего углов Вложенное слово Rect формирует данное типа "прямоугольник". Перед вызовом FillRect надо указать цвет заливки: PaintBox1.Canvas.Brush.Color:= RGB(0,0,0);
procedure TForm1.Button1Click(Sender: TObject); PaintBox1.Canvas.Brush.Color:= RGB(0,0,0); PaintBox1.Canvas.FillRect(Rect(0,0,100,100)); for i:= 1 to 300 do end 7. Заполнить канву случайными разноцветными линиями разной толщины. Линия рисуется с помощью методов (сначала задается начальная точка, потом конечная): PaintBox1.Canvas.MoveTo(10,10); PaintBox1.Canvas.LineTo(50,50); Цвет линии и толщина задаются свойством канвы Pen (карандаш). Pen.Color - цвет карандаша), Pen.Width - толщина линии в пикселах (по умолчанию - 1).
for i:= 1 to 300 do Begin PaintBox1.Canvas.Pen.Color:= RGB(random(255),random(255),random(255)); PaintBox1.Canvas.Pen.Width:= random(3)+1; x:= random(100); y:= random(100); PaintBox1.Canvas.MoveTo(x,y); x:= random(100); y:= random(100); PaintBox1.Canvas.LineTo(x,y); End 8. Заполнить канву эллипсами случайным образом (круги, окружности - частный случай эллипса). Эллипсы рисуются методом Ellipse() с четырьмя параметрами - координатами верхнего левого и правого нижнего углов прямоугольника, в который эллипс вписывается. Кайма эллипса рисуется в соответствии с параметрами свойства Pen канвы, а заливается эллипс внутри цветом кисти Brush канвы.
for i:= 1 to 300 do // цвет заливки внутренности эллипса // координаты углов прямоугольника, в который вписывается эллипс // вписываем эллипс 9. Сделать канву на весь экран. Заполнить разноцветными прямоугольниками в случайных позициях и случайных размеров с помощью FillRect(). 10. Создать графический образ так называемого множества Жюлиа. procedure TForm1.Button1Click(Sender: TObject); // вывод точки заданного цвета case c mod 8 of PaintBox1.Canvas.Pixels[x,y]:= cc; procedure QWA; IM1:=2*RE*IM; RE:=RE1; IM:=IM1; Begin RE1:=RE*(RE*RE-3*IM*IM); RE:=RE1; IM:=IM1; end; X:=-320; Then begin end
|