Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Свидетельство о публикации

Автоматическая выдача свидетельства о публикации в официальном СМИ сразу после добавления материала на сайт - Бесплатно

Добавить свой материал

За каждый опубликованный материал Вы получите бесплатное свидетельство о публикации от проекта «Инфоурок»

(Свидетельство о регистрации СМИ: Эл №ФС77-60625 от 20.01.2015)

Инфоурок / Информатика / Конспекты / Практическая работа по теме "Графические возможности языка Lazarus"
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 28 июня.

Подать заявку на курс
  • Информатика

Практическая работа по теме "Графические возможности языка Lazarus"

библиотека
материалов

Практическая работа

Тема. Графические возможности языка Lazarus. Организация

рисования. Создаем приложение «Рисовалка».


Цель: познакомиться с особенностями программирования графики в Lazarus.


Теоретическая часть.

Вам уже известны графические возможности языка Паскаль. В языке Lazarus также можно рисовать на разных объектах. Многие компоненты языка Lazarus имеют свойство Canvas (Холст). На этом холсте мы можем рисовать кистью (Brush), пером (Pen), определять шрифт (Font).

Кисть(Brush) предназначена для закрашивания фигур. Она может иметь цвет (Color) и стиль (Style).

Свойство Color определяет цвет кисти.

Свойство Style определяет способ закрашивания. Возможные значения: bsSolid (сплошная кисть), bsHorizontal и bsVertical (горизонтальные и вертикальные полоски соответственно), bsFDiagonal и bsBDiagonal (наклонные вправо или влево полосы соответственно), bsCross (клетка) и другие.

Пример:

Form1.Canvas.Brush.Color:=clBlue; //присвоить кисти синий цвет

Form1.Canvas.Brush.Style:=bsCross;//установить стиль закраски в клетку

Form1.Canvas.Rectangle(80,80,180,150); //нарисовать прямоугольник

Получаем прямоугольник, закрашенный клетками синего цвета.

Результат на рисунке:

hello_html_m3ab3ebd0.png

Перо (Pen) предназначено для рисования различных линий. У него может быть цвет (Color), вид (Style), ширина (Width), режим отображения (Mode).

Свойство Style может принимать значения: psSolid (сплошная линия), psDash (штрих), psDot (пунктир), psDashDot (штрих-пунктир) и другие.

Пример:

Form1.Canvas.Pen.Color:=clRed; //присвоить перу красный цвет

Form1.Canvas.Pen.Style:=psDot; //установить стиль в виде пунктирной линии

Form1.Canvas.Rectangle(80,80,180,150); //нарисовать прямоугольник

Получаем прямоугольник с пунктирной границей красного цвета.

Результат на рисунке:

hello_html_498ab893.png

На холсте мы можем нарисовать простейшие геометрические фигуры: точку (Pixels), линию (Line или LineTo), прямоугольник (Rectangle), эллипс (Ellipse), дугу (Arc) и другие. А также можем закрасить замкнутые области с помощью процедуры Floodfill.


Общий вид свойств и методов:

Свойство Pixels[X,Y]: Color – соответствует цвету точки с координатами (X,Y);

Пример: Form1.Canvas.Pixels[60,50]:=clred;//Вывести на форму красную точку.

Методы:

MoveTo(X,Y) – перемещает текущее положение пера в точку (X,Y);

LineTo(X,Y) – проводит линию текущим пером из текущей точки в точку (X,Y);

Line(X1,Y1,X2,Y2) – проводит линию от точки (X1,Y1) до точки (X2,Y2);

Rectangle(X1,Y1, X2,Y2) – рисует прямоугольник с диагональю заданной координатами (X1,Y1) и (X2,Y2);

Ellipse(X1,Y1, X2,Y2) – рисует и закрашивает эллипс, вписанный в прямоугольник (X1,Y1)- (X2,Y2);

Arc(X1,Y1,X2,Y2,XЗ,Y3,X4,Y4) - рисует сегмент эллипса. Эллипс определяется описывающим прямоугольником (X1,Y1)-(X2,Y2). Начальная точка сегмента лежит на пересечении эллипса и луча, проведенного из его центра через точку (X3,Y3). Конечная точка сегмента лежит на пересечении эллипса и луча, проведенного из его центра через точку (X4,Y4). Сегмент рисуется против часовой стрелки;

FloodFill(X, Y, Color, FillStyle); FillStyle = (fsSurface, fsBorder) – производит заливку области текущей кистью. Процесс начинается с точки (X,Y). Если режим FillStyle равен fsSurface, то он продолжается до тех пор, пока есть соседние точки с цветом Color. В режиме fsBorder закрашивание, наоборот, прекращается при выходе на границу с цветом Color;

TextOut(X, Y, Text) – производит вывод строки Text. Левый верхний угол помещается в точку (X,Y).


Определены следующие константы цветов:

clAqua

clBlack

clBlue

clCream

clFuchsia

clGray

clGreen

clLime

clMaroon

clMoneyGreen

Бирюзовый

Черный

Синий

Кремовый

Сиреневый

Серый

Зелёный

Ярко-зелёный

Темно-красный

Зелёные деньги

clNavy

clOlive

clPurple

clRed

clSilver

clSkyBlue

clTeal

clWhite

clYellow

Темно-синий

Оливковый

Фиолетовый

Красный

Серебряный

Голубой

Сине-зелёный

Белый

Жёлтый

Функция RGBToColor(R, G, B: integer): TColor позволяет определить любой цвет.

Пример:

RGBToColor(170,105,70); //определить коричневый цвет.


Практическая часть.

Создайте новый проект. Измените некоторые свойства формы:

Свойство

Значение

Name

FrmDraw

Caption

Рисовалка

Разместите на форме компонент Shape. Найти его можно на вкладке Additional палитры компонентов. Этот компонент позволяет вывести на форму какую-либо фигуру, например прямоугольник, окружность, треугольник и т.д. Как будет выглядеть Shape на форме, это зависит от его свойства Shape. Нам нужно, чтобы он выглядел в виде прямоугольника (rectangle), так как он будет играть роль экрана, на котором мы будем рисовать.

Разместите также на форме кнопку и измените её свойства:

Свойство

Значение

Name

BtnDraw

Caption

Рисовать



Вот что должно получиться:

hello_html_35c6a589.png

Теперь дважды щёлкните по кнопке Рисовать.

Активизировалась процедура TFrmDraw.BtnDrawClick(Sender: TObject);

Впишите в тело процедуры ниже следующий код.

Пояснение.

1. Вместо записи длинных строк типа:

Shape1.Canvas.Rectangle(80,80,180,150), мы воспользуемся оператором with do, который поможет сократить текст программы;

2. Комментарии, которые отделяются знаком // печатать не нужно.

with Shape1.Canvas do

begin

pen.Color:=clGray; //установить цвет пера

rectangle(80,80,180,150); //рисовать основание дома

rectangle(100,90,120,120); //рисовать окно

rectangle(140,110,170,150); //рисовать дверь

moveto(80,80); //переместиться в точку (80,80)

lineto(130,40);

lineto(180,80); //рисовать крышу

brush.Color:=clBlue; //установить цвет заливки

floodfill(140,90,clGray,fsBorder); //закрасить дом

brush.Color:=clGreen;

floodfill(150,130,clGray,fsBorder); //закрасить дверь

brush.Color:=clAqua;

floodfill(110,100,clGray,fsBorder); //закрасить окно

brush.Color:=clRed;

floodfill(130,60,clGray,fsBorder); //закрасить крышу

brush.Color:=clYellow; //установить цвет заливки

ellipse(30,10,60,40); //рисовать солнце

textout(120,160,'Дом'); //вывести надпись

end;

hello_html_m8e79ad2.png

Задание. Придумайте свой рисунок и напишите к нему программу, максимально используя графические возможности языка Lazarus.


Контрольные вопросы:

1. Назовите основное свойство компонентов языка Lazarus, позволяющее рисовать на этих компонентах.

2. Какими инструментами обладает это свойство?

2. Назовите основные графические методы.



Подайте заявку сейчас на любой интересующий Вас курс переподготовки, чтобы получить диплом со скидкой 50% уже осенью 2017 года.


Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ

Автор
Дата добавления 03.02.2016
Раздел Информатика
Подраздел Конспекты
Просмотров1424
Номер материала ДВ-413044
Получить свидетельство о публикации
Похожие материалы

Включите уведомления прямо сейчас и мы сразу сообщим Вам о важных новостях. Не волнуйтесь, мы будем отправлять только самое главное.
Специальное предложение
Вверх