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

Практическая работа по теме "Графические возможности языка 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); //нарисовать прямоугольник

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

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

Перо (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); //нарисовать прямоугольник

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

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

На холсте мы можем нарисовать простейшие геометрические фигуры: точку (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

Рисовать

 


 

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

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

Активизировалась процедура 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;   

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

 

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

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

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

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

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Практическая работа по теме "Графические возможности языка Lazarus""

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Директор детского оздоровительного лагеря

Получите профессию

Бухгалтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 664 409 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 03.02.2016 8086
    • DOCX 30.8 кбайт
    • 22 скачивания
    • Оцените материал:
  • Настоящий материал опубликован пользователем Карасев Андрей Дмитриевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Карасев Андрей Дмитриевич
    Карасев Андрей Дмитриевич
    • На сайте: 8 лет и 2 месяца
    • Подписчики: 0
    • Всего просмотров: 28682
    • Всего материалов: 7

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Копирайтер

Копирайтер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в образовательной организации

Учитель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 494 человека из 73 регионов
  • Этот курс уже прошли 1 525 человек

Курс повышения квалификации

Применение компьютерных моделей при обучении математике и информатике в рамках ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 48 человек из 27 регионов
  • Этот курс уже прошли 179 человек

Курс повышения квалификации

Теоретические и методологические основы преподавания информатики с учётом требований ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 153 человека из 49 регионов
  • Этот курс уже прошли 1 718 человек

Мини-курс

Сенсорная интеграция: типовые и инновационные методы

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 76 человек из 30 регионов
  • Этот курс уже прошли 45 человек

Мини-курс

Основы психологии личности: от нарциссизма к творчеству

8 ч.

1180 руб. 590 руб.
Подать заявку О курсе
  • Сейчас обучается 40 человек из 19 регионов
  • Этот курс уже прошли 12 человек

Мини-курс

Инновационные технологии в краеведческой и географической работе со школьниками

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе