Данная презентация предназнаеная для изучения одной из тем дисциплины "Основы алгоритмизации и прогпраммирование" специальности 09.02.04 Информационные системы (по отраслям). Презентация включает теоретический материал, контрольные вопросы, примеры программ на языке программипрования Делфи.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Мультимедийная презентация "Графика и управление"»
Графика и управление
Рисование на холсте
Пиксели и цвет
Каждый компонент, на котором можно нарисовать, имеет свойство Canvas(холст), с помощью его свойств и методов можно нарисовать все, что угодно.
Определить или изменить цвет отдельных пикселей можно с помощью свойства-массива Pixels . У каждого пикселя две стандартных координаты: x — расстояние от левой границы холста, y — расстояние от верхней границы. Точка (0,0) — это левый верхний угол.
Чтобы узнать или поменять цвет пикселя с координатами (x,y), используют обращение Canvas.Pixels[x,y] .
Рисование на холсте
Пиксели и цвет
Область, с которой можно работать, называется клиентской , ее ширина и высота определяются через свойства формы ClientWidth и ClientHeight . Поскольку отсчет координат начинается с нуля, нижний правый пиксель клиентской области имеет координаты (ClentWidth-1,ClientHeight-1).
Создадим обработчик события OnClick для формы:
var x, y: integer;
begin
for x:=0 to ClientWidth-1 do
for y:=0 to ClientHeight-1 do
Canvas.Pixels[x,y] := clRed;
end ;
В этой программе в двойном цикле перебираются все пиксели, и для каждого устанавливается красный цвет, который обозначается как clRed.
Рисование на холсте
Пиксели и цвет
Цвет можно задать и по-другому, а формате RGB ( red — красный, green — зеленый, blue —синий). Каждая из этих составляющих цвета — целое число в интервале от 0 до 255.
Изменим в вышеприведенной программе строку
var x, y: integer;
begin
Canvas.Pixels[x,y] := RGB(0,255,255);
end ;
Цвет в Delphi — это целое число, занимающее 4 байта. В принципе, можно прямо записывать это число в массив Pixels, при этом удобнее всего использовать шестнадцатеричную запись, где каждая составляющая кодируется двумя шестнадцатеричными цифрами (и занимает 1 байт). Перед шестнадцатеричными числами в Паскале ставится знак $.
var x, y: integer;
begin
Canvas.Pixels[x,y] := $00FFFF;
end ;
Рисование на холсте
Геометрические фигуры
Цвет и стиль линий определяется свойством Canvas.Pen(перо), которое содержит несколько подсвойств. Из них наиболее важны три следующих:
Color — цвет линий; Width — толщина линий
Style — стиль линии: psClear — нет линий, psSolid — сплошная, psDash — штриховая, psDot — точечная и другие.
Canvas.Pen.Color := clRed; // команда устанавливает красный цвет для линий
Замкнутые фигуры можно залить сплошным цветом или узором прямо при рисовании. Тип заливки определяется кистью — свойством Canvas.Brush , которое имеет два основных подсвойства:
Color — цвет кисти;
Style — стиль кисти: bsClear — нет заливки, bsSolid — сплошная, bsCross — в клеточку и другие.
По умолчанию устанавливается сплошная заливка белым цветом.
Рисование на холсте
Геометрические фигуры
При рисовании линий используется понятие текущей позиции рисования (графического курсора). Это невидимая точка, из которой начинается рисование очередного отрезка. Метод MoveTo(x,y) перемещает курсор (текущую позицию) в точку с координатами (x,y), а команда LineTo(x,y) рисует отрезок из текущей позиции в точку (x,y). Например, эти команды рисуют отрезок из точки (10,10) в точку (100,100):
Canvas.MoveTo (10, 10 );
Canvas.LineTo (100, 100 );
После выполнения метода LineTo(x,y) текущая позиция смещается в точку (x,y).
Рисование на холсте
Геометрические фигуры
procedure TForm1.btn1Click(Sender: TObject);
begin
Canvas.Pen.Color:=clBlue;
Canvas.MoveTo(0,0);
Canvas.LineTo(100,100);
Canvas.LineTo(200,0);
end;
Canvas.LineTo(ClientWidth,ClientHeight);
Задание : создать обработчик события OnClick для кнопки2, рисующий 2 линии, разделяющие форму на 4 равные части.
Рисование на холсте
Геометрические фигуры
Можно избавиться от утомительного написания символов « Canvas .» перед каждой командой рисования. Для этого есть простой способ: использовать оператор with :
with Canvas do
begin ... end;
procedure TForm1.btn2Click(Sender: TObject);
begin
with Canvas do
begin
MoveTo(0,0);
LineTo(ClientWidth,ClientHeight);
MoveTo(ClientWidth,0);
LineTo(0, ClientHeight)
end ;
end ;
Рисование на холсте
Рисование прямоугольника
Для рисования прямоугольника используется метод
Canvas.Rectangle ( x1, y1, x2, y2 );
для контура используются настройки пера (Canvas.Pen), для заливки внутренней части — кисть (Canvas.Brush).
with Canvas do
Begin
Pen.Color := clRed;
Brush.Color := clBlue;
Rectangle (20,20,100,100)
end;
x1,y1
x2,y2
Чтобы отключит заливку, достаточно установить прозрачную кисть, то есть
Canvas.Brush.Style := bsClear;
Рисование на холсте
Рисование эллипса
Эллипсы (и круги) рисуются с помощью метода Canvas.Ellipse:
Canvas.Ellipse( x1, y1, x2, y2 );
Точки (x1,y1) и (x2,y2) — это противоположные углы прямоугольника, в который вписан этот эллипс.
x1,y1
Задание : создать обработчик события OnClick для кнопки3, рисующий 4 эллипса, расположенных в разных углах формы.
procedure TForm1.btn3Click(Sender: TObject);
begin
with Canvas do begin
Pen.Color := clRed;
Brush.Color := clBlue;
Ellipse (0,0,50,50);
Ellipse (200,0,250,50);
Ellipse (0,200,50,250);
Ellipse (200,200,250,250);
end;
end;
x2,y2
ВОПРОСЫ
1.Что обозначает в Delphi слово Canvas?
2. Для каких целей можно использовать новый оператор with ?
3. С помощью каких команд нарисуем линию на форме?
4. Как установить цвет линии?
5.Что обозначают слова ClientWidth и ClientHeight, как их можно использовать при рисовании?
6. Что обозначает команда Rectangle (20,20,100,100)?
7. Что обозначают команда Canvas.Brush.Style := bsClear;
8. Покажите схематично, что будет изображено на форме в результате работы команды Ellipse (200,0,250,50).