Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Методи креслення графічних примітивів



 

Будь-яка картинка, креслення, схема можуть розглядатися як сукупність графічних примітивів: точок, ліній, окружностей, дуг і ін. Таким чином, для того щоб на екрані з'явилася потрібна картинка, програма повинна забезпечити креслення (виводу) графічних примітивів, що складають цю картинку.

Креслення графічних примітивів на поверхні компонента (чи форми області виводу ілюстрації) здійснюється застосуванням відповідних методів до властивості Canvas цього компонента.


Лінія

Креслення прямої лінії здійснює метод LіnеTо, інструкція виклику якого в загальному виді виглядає в такий спосіб:

Компонент.Canvas.LineTo(x,у)

Метод LіnеTо вичерчує пряму лінію від поточної позиції олівця в крапку з координатами, зазначеними при виклику методу.

Початкову крапку лінії можна задати, перемістивши олівець у потрібну точку графічної поверхні. Зробити це можна за допомогою методу MoveTo (x,y: integer), указавши як параметри координати нового положення олівця.

Вид лінії (колір, товщина і стиль) визначається значеннями властивостей об'єкта Реn графічної поверхні, на якій викреслюється лінія.

Досить часто результати розрахунків зручно представити у виді графіка. Для більшої інформативності і наочності графіки зображують на фоні координатних осей і оцифрованої сітки. У лістингу 4.2 приведений текст програми, що на поверхню форми виводить координатні осі й оцифровану сітку (мал. 4.4).

 

Рис. 4.4Форма додатка Координатна сітка

 

Лістинг 4.2 Осі координат і оцифрована сітка

unitgrid_;

Interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

Type

TForm1 = class(TForm)

procedureFormPaint(Sender: TObject);

private

{ Private declarations }

Public

{ Public declarations }

end;

Var

Form1: TForm1; implementation

{$R *.DFM}

procedureTForm1.FormPaint(Sender: TObject);

Var

x0,y0:integer; // координати початку координатних осей

dx,dy:integer; // крок координатної сітки (у пикселах)

h,w:integer; // висота і ширина області виводу координатної сітки

х,у:integer;

lx,ly:real; // мітки (оцифровка) ліній сітки по X і Y

dlx,dly:real; // крок міток (оцифровки) ліній сітки по X і Y

cross:integer; // лічильник неоцифрованих ліній сітки

dcross:integer;// кількість неоцифрованих ліній між оцифрованими

Begin

х0:=40; у0:=220; // осі починаються в точці (40,250)

dx:=40; dy:=40; // куля координатної сітки 40 пикселов

dcross:=1; // позначати лінії сітки X: 1 — кожну;

// 2 — через одну;

// 4 — через дві;

dlx:=0.5; // крок міток осі X

dly:=1.0; // крок міток осі Y, мітками будуть: 1, 2, 4 і т.д.

h:=200; w:=400;

withforml.Canvas do begin

cross:=dcross;

MoveTo(x0,v0); LineTo(x0,y0-h); // вісь X

MoveTo(x0,y0); LineTo(x0+w, y0); // вісь Y

// зарубки, сітка й оцифровка по осі X

x:=x0+dx;

lx:=dlx;

Repeat

MoveTo(x,y0-4);LineTo(x,y0+4); // зарубка

cross:=cross-l;

if cross = 0 then// оцифровка

Begin

TextOut(x-8,y0+5,FloatToStr(lx));

cross:=dcross ; end;

Pen.Style:=psDot;

MoveTo(x,y0-4);LineTo(x,y0-h); // лінія сітки

Pen.Style:=psSolid;

lx:=lx+dlx;

x:=x+dx;

until (x>x0+w);

// зарубки, сітка й оцифровка по осі Y

y:=y0-dy;

ly:=dly;

Repeat

MoveTo(х0-4,у);LineTo(х0+4,у); // зарубка

TextOut(х0-20,у,FloatToStr(1у)); // оцифровка

Pen.Style:=psDot;

MoveTo(х0+4,у); LineTo(x0+w,у); // лінія сітки

Pen.Style:=psSolid;

y:=y-dy;

ly:=ly+dly; until (y<y0-h);

end;

end;

End.

Особливість приведеної програми полягає в тім, що вона дозволяє задавати крок сітки й оцифровку. Крім того, програма дає можливість оцифровувать не кожну лінію сітки осі х, а через одну, дві, три і т.д. Зроблено це для того, щоб запобігти можливі накладення зображень чисел оцифровки один на одного у випадку, якщо ці числа складаються з декількох цифр.

Ламана лінія

 

Метод polyline вичерчує ламану лінію. Як параметр метод одержує масив типу TPoint. Кожен елемент масиву являє собою запис, полючи х и у якої містять координати точки перегину ламаної. Метод Polyline вичерчує ламану лінію, послідовно з'єднуючи прямими точки, координати яких знаходяться в масиві: першу з другий, другу з третьої, третю з четвертої і т.д.

Як приклад використання методу Polyline у лістингу 4.3 приведена процедура, що виводить графік зміни деякої величини. Передбачається, що вихідні дані знаходяться в доступному процедурі масиві Data (тип Integer).




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.