Программа, иллюстрирующая работу с графикой в Delphi на примере рисования ломаных и кривых линий

Область применения компьютерной графики. Работа с графикой в Delphi, обращение к свойству Canvas-компонентов. Холст для рисования Canvas - перевернутая система координат. Свойства и методы приложения. Простое приложение, иллюстрирующее работу с графикой.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 23.03.2015
Размер файла 968,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КУРСОВАЯ РАБОТА

по дисциплине "программирование"

Тема: "Программа, иллюстрирующая работу с графикой в Delphi на примере рисования ломаных и кривых линий"

Выполнила:

студентка 2 курса, 2 группы

специальности "СИЯ" Ярмолович Татьяна Юрьевна

Руководитель:

доцент кафедры Информационных технологий

Серебрякова Людмила Михайловна

Минск 2014

Оглавление

  • Введение
  • Глава 1. Графика в Delphi
  • 1.1 Создания приложения. Класс TCanavas. Его основные свойства и методы
  • 1.2 Объекты TBrush, TFont и TPen
  • Глава 2. Пример программы
  • Заключение
  • Литература
  • Приложение

Введение

Данная работа посвящена теме "Программа, иллюстрирующая работу с графикой в Delphi на примере рисования ломаных и кривых линий". Необходимость широкого использования графических программных средств стала особенно ощутимой в связи с развитием Интернета и, в первую очередь, благодаря службе World Wide Web, связавшей в единую "паутину" миллионы "домашних страниц". У страницы, оформленной без компьютерной графики мало шансов привлечь к себе массовое внимание.

Область применения компьютерной графики не ограничивается одними художественными эффектами. Во всех отраслях науки, техники, медицины, в коммерческой и управленческой деятельности используются построенные с помощью компьютера схемы, графики, диаграммы, предназначенные для наглядного отображения разнообразной информации. Конструкторы, разрабатывая новые модели автомобилей и самолетов, используют трехмерные графические объекты, чтобы представить окончательный вид изделия. Архитекторы создают на экране монитора объемное изображение здания, и это позволяет им увидеть, как оно впишется в ландшафт.

В нашем случае, при создании приложений использующих графику, в основном применяются следующие объекты (классы):

§ TCanаvas - поверхность рисования,

§ TPen - перо,

§ TBrush - кисть,

§ TFont - шрифт.

Сам по себе холст (Canаvas) представляет собой поверхность, на которую можно выводить текст и иные графические изображения - линии, прямоугольники, эллипсы, квадраты и т.д. Но при ближайшем рассмотрении можно увидеть, что этот холст представляет собой плоскость, состоящую из отдельных точек - пикселей. Пиксель - это базовый элемент графического ввода, представляющий собой отдельную точку. Фактически, при рисовании на холсте мы просто закрашиваем его отдельные точки тем или иным цветом. Но, разумеется, работая с холстом посредством методов, предоставляемых классом TCanvas, можно без лишних хлопот выводить не только точки, но и текст, линии, прямоугольники, многоугольники, окружности, и даже готовые изображения. В данном случаем, мы будем пробовать выводить такие элементы, как кривые и ломаные.

Глава 1. Графика в Delphi

Работа с графикой в Delphi предполагает обращение к свойству Canvas компонентов. Для программиста Canvas в Delphi - это холст, который дает доступ к каждому пикселю. Конечно, рисовать попиксельно для работы с графикой в Delphi не приходится, система Delphi предоставляет мощные средства работы с графикой, облегчающие задачу программиста.

В работе с графикой в Delphi, у вас в распоряжении находится канва (холст, а точнее свойство Canvas Delphi компонентов), кисть (свойство Brush), карандаш (свойство Pen) компонента на которым мы собираемся рисовать. У Pen и Brush есть свойство Color (цвет) и Style (стиль). Чтоб получить доступ к шрифтам, предоставлено свойство холста (Canvas) Font.

Холст для рисования Canvas представляет собой перевернутую систему координат XOY, где О - верхняя левая точка компонента или формы (смотря где мы рисуем).

Хорошая новость состоит в том, что Delphi имеет целый ряд готовых к использованию компонент, заботиться о рисовании которых разработчику совершенно незачем, поскольку всю рутинную работу уже выполнили разработчики Delphi и VCL. Более того, в VCL есть множество "заготовок", на основании которых можно создавать собственные компоненты, опять-таки без непосредственного обращения к функциям графического вывода.

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

1.1 Создания приложения. Класс TCanavas. Его основные свойства и методы

Как было сказано ранее, поверхности, на которую программа может выводить графику, соответствует свойство Canvas. В свою очередь, свойство canvas - это объект типа TCanvas. Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т.д.), а свойства позволяют задать характеристики выводимых графических примитивов: цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации.

Основное свойство такого объекта как Canvas Delphi - Pixels [i, j] типа TColor, то есть это двумерный массив точек (пикселов), задаваемых своим цветом. Рисование на канве происходит в момент присвоения какой-либо точке канвы заданного цвета. Каждому пикселу может быть присвоен любой доступный для Windows цвет. Например, выполнение оператора Image1. Canvas. Pixels [100,100]: =clRed;

приведёт к рисованию красной точки с координатами [100, 100]. Так же легко узнать цвет пиксела можно обратным присвоением:

Color: =Image1. Canvas. Pixels [100,100];

Тип TColor определён как длинное целое (LongInt). Его четыре байта содержат информацию о долях синего (B), зелёного (G), и красного (R) цветов. В 16-ричной системе это выглядит так: $00BBGGRR. Доля каждого цвета может меняться от 0 до 255. Поэтому чтобы отобразить максимально красную точку, ей нужно присвоить цвет $000000FF. Для стандартных цветов в Delphi определён набор текстовых констант. Увидеть его можно, открыв в Инспекторе Объектов свойство Color, например, той же Формы.

Использование класса TCanvas обеспечивает следующие возможности:

§ Создание изображений с помощью объектов кисть, перо, шрифт,

§ Рисование и заливка различных фигур и линий,

§ Вывод текста в графическом режиме,

§ Загрузка графических изображений из файла,

§ Программирование реакции на изменения в текущем изображении.

Объект TCanvas является одновременно и свойством многих других объектов. Так, с его помощью можно рисовать на поверхности следующих видимых объектов, содержащих свойство TCanvas: TForm, TBitmap, TComboBox, TDrawGrid, TImage, TListBox, TPaintBox, TPrinter и др.

Свойства: Свойство TCanvas представляет собой объект, который содержит в себе не только холст для рисования, но и средства рисования - перо Pen, кисть Brush и шрифт Font. Ниже, в таблице 1, приведен полный список свойств объекта TCanvas.

Таблица 1. Свойства объекта TCanvas

Свойство

Объявление

Brush,

property Brush: TBrush

Определяет цвет и стиль заполнения замкнутых фигур и фона.

ClipRect,

propertv ClipRect: TRect;

Определяет доступную область рисования на канве и область, подлежащую перерисовке при событии OnPaint. Свойство только для чтения.

CopyMode,

property CopyMode: TCopyMode;

Определяет режим копирования графического изображения на канву.

Font,

property Font: TFont

Определяет атрибуты шрифта, которым выводится текст.

Pen,

property Pen: TPen

Определяет свойства пера, рисующего линии и фигуры.

PenPos,

property PenPos: TPoint

Определяет текущую позицию пера.

Pixels,

property Pixels [X. Y: Integer]: TColor:

Определяет цвета пикселов.

Методы: Canavas обеспечивает пространство (холст, канву) для создания, хранения и модификации графических объектов. Ниже, в таблице 2, приведены основные методы класса TCanvas.

Таблица 2. Методы класса TCanvas

Метод

Описание

Arc,

procedure Arc (Xl, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: integer)

Рисует дугу окружности или эллипса. (XI,Y1) и (X2,Y2) определяют описанный прямоугольник, (X3,Y3) и (X4,Y4) - точки, через которые проходят радиусы, отмечающие начало и конец дуги.

Chord,

procedure Chord (Xl, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: integer)

Рисует замкнутую фигуру, ограниченную дугой и хордой. (XI,Y1) и (X2,Y2) определяют описанный прямоугольник. (X3,Y3) и (X4,Y4) - точки, через которые проходит хорда.

Draw,

procedure Draw (X, x: Integer; Graphic: TGraphic)

Выводит графическое изображение Graphic в указанную позицию канвы (X, Y - левый верхний угол).

Ellipse,

procedure Ellipse (Xl, Yl, X2, Y2: Integer)

Рисует окружность или эллипс. (XI, Yl) и (Х2, Y2) определяют описанный прямоугольник.

FillRect,

procedure FillRect (const Rect: TRect)

Заполняет указанный прямоугольник канвы, используя текущее значение кисти Brush.

FrameRect,

procedure FrameRect (const Rect: TRect)

Рисует на канве текущей кистью прямоугольную рамку толщиной в 1 пиксель без заполнения внутренней части прямоугольника.

LineTo,

procedure LineTo (X, Y: Integer)

Рисует на канве прямую линию, начинающуюся с текущей позиции пера и кончающуюся точкой.

MoveTo,

procedure MoveTo (X, Y: integer)

Изменяет текущую позицию пера на заданную, ничего не рисуя.

Pie,

procedure Pie (Xl, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: Longint)

Рисует сектор окружности или эллипса. (XI,Y1) и (X2,Y2) определяют описанный прямоугольник. (X3,Y3) и (X4,Y4) - точки, через которые проходят радиксы, ограничивающие сектор.

Polygon,

procedure Polygon (Points: array of TPoint)

Рисует замкнутую фигуру с кусочно-линейной границей (многоугольник).

Polyline,

procedure Polyline (Points: array of TPoint)

Рисует незамкнутую кусочно-линейную ломаную линию.

Rectangle,

procedure Rectangle (Xl, Yl, X2, Y2: Integer)

Рисует прямоугольник, заданный (X1, Y1) и (Х2, Y2).

RoundRect,

procedure RoundRect (Xl, Yl, X2, Y2, ХЗ, Y3: Integer)

Рисует прямоугольник со скругленными углами: (X1, Y1) и (Х2, Y2) - прямоугольник, ХЗ и Y3 - ширина и высота эллипса скругления.

StretchDraw,

procedure StretchDraw (const Rect: TRect; Graphiс: TGraphic)

Рисует графическое изображение Graphic в указанную прямоугольную область канвы Rect, подгоняя размер изображения под заданную область.

TextOut,

procedure TextOut (X, Y: Integer; const Text: string)

Пишет указанную строку текста Text на канве, начиная с указанной позиции.

1.2 Объекты TBrush, TFont и TPen

· Свойство Brush представляет собой объект кисти со своим набором свойств:

Свойство

Объявление / Описание

Bitmap

propertv Bitmap: TBitmap;

Картинка размером 8х8 пикселей, которая используется как шаблон заполнения.

Color

propertv Color: TColor:

Цвет заливки (кисти). По умолчанию - clWhite.

Style

property Style: TBrushStyle

Определяет стиль заливки.

· Свойство Font, определяет множество характеристик, описывающих шрифт, используемый при отображении текстов: высоту шрифта, его имя, атрибуты (полужирный, курсив) и т.д. Свойства:

Свойство

Объявление / Описание

Color

property Color: TColor;

Определяет цвет текста.

Height

property Height: Integer;

Характеризует высоту шрифта в пикселах.

Name

property Name: TFontName;

Вид (имя) шрифта.

Size

property Size: Integer;

Размер шрифта в кеглях (пунктах).

Style

property Style: TFontStyles;

Стиль шрифта: полужирный, курсив, подчеркнутый, перечеркнутый.

· Свойство Pen представляет собой объект пера, который определяет вид линий, применяемых для рисования различных фигур, и имеет собственный набор свойств:

Свойство

Объявление / Описание

Color

property Color: TColor;

Цвет пера. По умолчанию clBlack.

Mode

property Mode: TPenMode;

Определяет режим рисования линий.

Style

property Style: TPenStyle;

Определяет стиль рисования линий.

Width

property Width: Integer;

Определяет толщину линии в пикселах. Влияет на Style.

В процессе рисования с использованием методов объекта Canvas требуется задавать цвета линий, текста и заливки, что делается путем установки свойства Color объектов пера, шрифта и кисти соответственно. Для задания определенного цвета применяются специальные цветовые константы. Существует большое количество таких констант, в чем можно убедиться, раскрыв в Инспекторе объектов список цветов, в поле справа от свойства Color, любого из компонентов, например Form. В качестве основных можно выделить одиннадцать основных цветовых констант:

clBlack - черный цвет;

clMaroon - коричневый цвет;

clGray - серый цвет;

clBlue - синий цвет;

clAqua - голубой цвет;

clGreen - темно-зеленый цвет;

clLime - светло-зеленый цвет;

clFuchsia - фиолетовый цвет;

clRed - красный цвет;

clYellow - желтый цвет;

clWhite - белый цвет.

Кроме того, существует еще множество констант для обозначения других цветов.

Глава 2. Пример программы

Создадим простое приложение, иллюстрирующее работу с графикой в Delphi на примере рисования кривых и ломаных. Поместим на форму шесть компонентов Edit1, Edit2, Edit3, Edit4, Edit5 и Edit6, шесть компонентов Label1, Label2, Label3, Label4, Label5, Label 6соответственно, а также два компонента Button1 и Button2.

Цель работы. Создать программу для рисования кривых и ломаных в Delphi. Для начала, на нашей форме расставим в нужном нам порядке все компоненты так, чтобы было место на нашей форме для изображения линий. В нашем случае, линии будут выводиться справа от самих компонентов. (Рисунок 3.1)

Рисунок 3.1

Компоненты Edit1, Edit2, Edit3, Edit4, Edit5 и Edit6 будут служить полем для ввода координат. В окне Object Inspector удалим значения свойств Caption, для ввода нужных нам значений. Для компонентов Label1, Label2, Label3, Label4, Label5, Label6 изменим значения свойств на x1,y1,x2,y2, х3, у3. Кнопки Button1 и Button2 переименуем как "Нарисовать" и "Очистить" соответственно.

Рисунок 3.2

Добавим еще семь компонентов Label7, Label8, Label9, Label10, Label11, Label12 и Label13, шесть из которых будут использоваться для показа ограничений для наших координат, так как при вводе определенного значения для определенной точки, наш объект может сместиться за пределы нашей формы. Их мы поместим над ячейками, куда будем вводить эти самые данные. Компонент Label13 будет использоваться для того, чтобы указать нам, куда мы должны вводить координаты. В окне Object Inspector поэкспериментируем со шрифтами (TFont).

графика компьютерная delphi canvas

Рисунок 3.3

Приступим к записи процедур для нашей программы. Для этого нужно дважды щелкнуть левой кнопкой мыши по Button1 (Нарисовать объект) и у нас откроется окно Code, для ввода процедур. В нашем случае, в этом окне уже будет заготовка процедуры:

procedure TForm1. Button1Click (Sender: TObject);

var x1,x2,x3,y1,y2,y3: integer;

begin

X1: =strtoint (edit1. Text);

Y1: =strtoint (edit2. Text);

X2: =strtoint (edit3. Text);

Y2: =strtoint (edit4. Text);

X3: =strtoint (edit5. Text);

Y3: =strtoint (edit6. text);

canvas. Pen. Width: =4;

Canvas. Pen. Color: =

RGB (Random (256), Random (256), Random (256));

RGB (Random (256), Random (256), Random (256));

Canvas. Brush. Color: =

RGB (Random (256), Random (256), Random (256));

canvas. polyLine ([point (X1,Y1),point (X2,Y2),point (X3,Y3)]);

end;

Щелкнем дважды левой кнопкой мыши и по Button2 (Очистить). В окне Code, для процедуры введем следующее:

procedure TForm1. Button2Click (Sender: TObject);

begin

form1. Refresh;

end;

end.

Выполняем программу (F9), задавая различные координаты точек в указанных ячейках (X1,Y1,X2,Y2,X3,Y3).

Блок-схема алгоритма

Заключение

В своей работе я продемонстрировала работу программы, иллюстрирующую работу с графикой в Delphi на примере рисования Кривых и ломаных. Показала, как и куда задаются координаты. В связи с этим можно отметить, что работать с графическими элементами в Delphi достаточно просто. Основные конструкции языка четко выделяются в программе, что способствует хорошему восприятию написанного кода. Графический интерфейс Delphi отлично продуман, среда разработки предоставляет доступ только к тем участкам кода, с которыми необходимо работать, скрывая основную часть программы, которая создается автоматически самой разработкой.

В результате выполнения данной курсовой работы, я убедилась в широких возможностях Delphi.

Литература

1. Лекционный курс. Графика. Рисование стандартных фигур.

2. Свойства: Brush, Font, Pen http://maksakov-sa.ru/TeorDelphi/Brush_Font_Pen/index.html

3. Изучаем Delphi. Графика в Windows http://www.snkey.net/books/delphi/ch2-3.html

4. Валентин Озеров "Советы по Delphi", 1999

Приложение

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class (TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Button1: TButton;

Button2: TButton;

Label6: TLabel;

Edit6: TEdit;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

procedure Button2Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *. dfm}

procedure TForm1. Button1Click (Sender: TObject);

var x1,x2,x3,y1,y2,y3: integer;

begin

X1: =strtoint (edit1. Text);

Y1: =strtoint (edit2. Text);

X2: =strtoint (edit3. Text);

Y2: =strtoint (edit4. Text);

X3: =strtoint (edit5. Text);

Y3: =strtoint (edit6. text);

canvas. Pen. Width: =4;

Canvas. Pen. Color: =

RGB (Random (256), Random (256), Random (256));

RGB (Random (256), Random (256), Random (256));

Canvas. Brush. Color: =

RGB (Random (256), Random (256), Random (256));

canvas. polyLine ([point (X1,Y1),point (X2,Y2),point (X3,Y3)]);

end;

procedure TForm1. Button2Click (Sender: TObject);

begin

form1. Refresh;

end;

end.

Результат работы

Рисунок 4. 1

Размещено на Allbest.ru


Подобные документы

  • Методы вывода графических примитивов в программе Delphi. Основные методы, объявленные в классе TCanvas. Использование объектов Brush, Pen, Front. Примеры применения функции Round Rect. Отличия способов рисования прямоугольника Polyline и Polygon.

    курсовая работа [834,1 K], добавлен 17.09.2014

  • Отображение графики с помощью Canvas, представляющей собой область компонента, на которой можно рисовать или отображать готовые изображения. Операторы, применяемые в программе создания аналоговых часов, ее интерфейс и алгоритм решения на языке Delphi.

    курсовая работа [2,3 M], добавлен 20.01.2016

  • Создание приложения для просмотра графических файлов. Компоненты, объекты и операторы для отображения графической информации в библиотеке Delphi. Канва как область компонента для рисования и отображения изображений. Рисование пером, закрашивание кистью.

    методичка [98,1 K], добавлен 19.06.2011

  • Разработка приложений для работы с графикой в Borland C++ Builder. Вывод изображения на экран, изменение цвета и толщины линии контура, перемещение объекта по экрану, получение нового объекта вычитанием двух существующих. Основные обработчики событий.

    контрольная работа [1,5 M], добавлен 28.03.2012

  • Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.

    дипломная работа [3,6 M], добавлен 13.07.2011

  • Понятие мультимедиа как интерактивных систем, обеспечивающих работу с неподвижными изображениями и движущимся видео, анимированной компьютерной графикой, текстом, речью и качественным звуком. Области применения сканера, веб-камеры, лазерной клавиатуры.

    контрольная работа [1,2 M], добавлен 12.01.2012

  • Описания интерактивных систем, обеспечивающих работу с изображениями, движущимся видео и анимированной компьютерной графикой. Определение основных мультимедийных ресурсов сети Интернет. Преимущества и недостатки применения мультимедиа в образовании.

    курсовая работа [41,0 K], добавлен 17.01.2015

  • Основы создания фрактальных композиций при помощи среды программирования Паскаль. Сущность и основа фрактальной графики. Графические возможности и операторы для рисования геометрических фигур в среде Паскаль. Примеры обозначения цветов на языке Паскаль.

    лабораторная работа [15,7 K], добавлен 12.06.2010

  • Общая характеристика системы программирования Delphi, а также принципы создания ее компонентов. Описание значений файлов приложения, созданного с помощью Delphi. Структура и свойства библиотеки визуальных компонентов (Visual Component Library или VCL).

    отчет по практике [1,1 M], добавлен 07.12.2010

  • Характеристика графических возможностей среды программирования Lazarus. Анализ свойств Canvas, Pen, Brush. Сущность методов рисования эллипса и прямоугольника. Возможности компонентов Image и PaintBox. Реализации программы "Графический редактор".

    курсовая работа [2,8 M], добавлен 30.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.