Е. Жақсылықов мультимедиалық ЖҮйелерді жобалау және қҰрастыру


TeeChart кітапхана диаграммаларының компоненттері



бет4/9
Дата21.07.2016
өлшемі3.19 Mb.
#214513
1   2   3   4   5   6   7   8   9

5.2 TeeChart кітапхана диаграммаларының компоненттері


Компьютерде дайындалған статистикалық документтерде іскерлік графика – диаграммалар жиі қолданылады. Delphi-ге экран мен принтерде түрлі диаграммаларды салуға мүмкіндік беретін TeeChart кітапханасы енгізілген. Ол Дэвид Бернедамен жазылған және құрамында диаграммалар компоненттерінің бірнеше компиляцияланатын модульдері мен бірнеше стандартты Series типтері бар. TeeChart Gallery утилитасының терезесі көрсетілген 5.1 кескіні диаграммалардың мүмкін типтерінің әртүрлілігі жайлы түсінік береді.
Мысал 10. Bar стилінің түрлі типтерін қолданатын бағандық диаграмманы құру.

Тапсырманы орындау технологиясы:

1) диаграмма компонентін формаға орналастырыңыз.

2) диаграмманың үстіне тышқанның оң жақ батырмасын шертіп, шыққан мәзірден редакторды таңдаңыз.

3) bar-дың үш сериясын кірістіріңіз де, редактордың бірінші бетіндегі Title батырмасының көмегімен оларға ‘East’, ‘West’, и ‘Other’ атауларын меншіктеңіз.

4) format парағында Multiple Bar тобын таңдаңыз да, ‘stacked’ (бұл мән үш серияның барлығына бірдей қатысты болады және бағаналардың бір-бірінде орналасуын тағайындайды) мәнін орнатыңыз.

5) диаграмма редакторының бірінші бетіндегі ‘Titles’ өрісіне атау еңгізіңіз.

6) (axis) өсінің қосымша бетіне өтіңіз. Left өсін таңдап, атауды еңгізіңіз. Біз өлшемдері автоматты түрде анықталатын өсті кірістірдік. Әрбір серияның өзіне ғана тән жолақтар формасы болады. Бұны Style-ды орнату мүмкіншілігі бар Format деген бірінші қосымша бетте тағайындауға болады. Тура осыны бағдарлама мәтінінде орындауға болады:

East.BarStyle:=bsPyramid;

West.BarStyle:=bsInvPyramid;

Other.BarStyle:bsRectangle;

Сериялардың шығу ретін не жасап шығару кезінде диаграмма редакторында, не бағдарлама мәтініде Serieslist қасиетінің көмегімен басқаруға болады:

Chart1.SeriesList[0]:=East;

Chart1.SeriesList[1]:=West;

Chart1.SeriesList[2]:=Other;

Берілген демонстрациялық диаграмманың сериялары кездейсоқ шамалармен толтырылған.
5.3 Кескінтерді модельдеу

Ф.Мартинес классификациясына сәйкес кескіндегі ақпаратты үш топқа бөлуге болады:

топологиялық ақпарат (морфология және геометрия);

визуалды ақпарат (сыртқы түрі және жарықтандыру);

анықтауыш ақпарат (идентификация және құрылым).

Аталған алты тәуелсіз класс келесі ақпаратқа ие: ,



идентификация (I) — объектілер немесе объектілер жиынтығының атауы;

құрылым (S) объектілердің өзара байланыстарын көрсетеді: логикалық (тәнділік, іске қосылу және т.б.), топологиялық(жақындылығы, жанасу және т.б.) және функционалды;

морфология (М) қалпына және байқау нүктесінен тәуелсіз объект формасын көрсетеді;

геометрия (G) морфологияны объектілердің өзара байланысы, проекциялар, көре алу қасиеті және т.б. жайлы ақпаратпен толықтырады. Геометрия түсіру және суреттеу туралы ақпаратпен толықтырылады;

түсіру(съемка) (Gv) түсіру нүктесі, объектив түрі, фокустық қашықтық, кескін форматы жайлы ақпаратты қамтиды. Үш өлшемді объектілер үшін түсіру кескін проекциясын суреттік жазықтық кеңістік немесе жоспар деп аталынатын жазықтыққа түсіру жолымен іске асырылады;

суреттеу (Ga) – жоспардың екі өлшемді кескінін кадрдың екі өлшемді кескініне түрлендіру;

сыртқы түрі (А) құрамында объект жасалған материалға қатысты ақпарат бар: түсі, текстура, жарықтылығы, мөлдірлігі және т.б.;

жарықтың түсуі (Е) жарық көзінің орналасуын, санын және табиғатына, сонымен бірге көру шарттарын: тұман, түтін көрсетеді.

Кескін синтезінің мәселесіне тоқтамаңыз, бұл ақпараттан ЭЕМ экранында кескінді құрастыруда кездесетін математикалық есептердің негізгілерін атап көрсетейік:

1) координаттар жүйесін түрлендіру және проекциялау;

2) көрінбейтін сызықтарды жою;

3) жарықтың түсуі мен көлеңкені модельдеу;

4) түстерді модельдеу;

5) текстураны модельдеу;

6) объектілермен жасалатын логиикалық операциялар.


6 Мултьимедиалық жүйелердің функциялар графигі



Бір айнымалы функция графигін құру

Бірінші бөлімде параметрлі берілген функция графигін құру есебін қарастырылған. Енді нақтырақ талдау жасау үшін бір айнымалы функция графигін құрастыру есебіне оралсақ.

Для построения графика функции у = f(x) функция графигін қағазда салу үшін (X1,X2)*(Y,,Y2) өлшемді тікбұрыш таңдалып алынады. Монитор экранында функция графигін салу кезінде туындайтын қиыншылық (X1,X2)*(Y,,Y2) өлшемді тікбұрышты экрандағы тікбұрышқа масштабтауға тура келетінінде.
Мысал 11. Бұрылған торда күңгірт түстердің көмегімен бейнелеу. Тордың параметрлік теңдеулерін сурет ретінде келтіретін боламыз:

x = (R + r0 * cosβ) * cosα;

y = (R + r0 * cosβ) * sinα;

z = r0 * sinβ.





R- координаттар басынан тордың өсіне дейінгі қашықтық, r0 – тордың радиусы, - 0-ден 2-ге дейін мән қабылдайтын бұрыштар.

II(x:real): integer и JJ(y:real): integer функциялары ауқымдауды жүзеге асырады, ал О1, О2 и О3 процедуралары – координаттар жүйесін Z,Y,X өстерін сәйкесінше айналуы. Мәндерді есептеуді жылдамдату үшін sinα және cosα 30 қадамымен алдын ала есептеліп, co [0..120] және si [0..120] массивтеріне енгізіліп қойған.



Тапсырманы орындау технологиясы:

Синустар және косинустар массивін толтыру процедурасы


Procedure TForm1.FormCreate(sender:TObject);

Var i: integer;

begin

for i:=0 to 120 do



begin

co[i]:=cos(Pi/60*i); si[i]:=sin(Pi/60*i);

end;

end;
Тордың беткі қабаты тіктөртбұрыштарға бөлінген (9.7 суреті) a=i*q, i=1..n, b=j*h, j=1..m.



Тіктөртбұрыштың түсі Z өсіне проекцияның ұзындығымен және төртбұрыштың бірлік нормалі анықталады, операторлармен жүзеге асырылады.

Функцияның графиктері

unit U1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls.



type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender:TObject);

procedure FormCreate(Sender:TObject);

private


{ Private declarations }

public


{ Public declarations }

end;
var

Form1: TForm1;

imlementation


{$R *.dfm}

procedure TForm1.Button1Click(Sender:TObject);

var

x,y: real;



Px,Py,l,g:integer;

begin


l:=Form1.Height div 2;

begin


for Px:=0 to Form1.Width do begin

x:=Px*3*pi/Form1.Width;

y:=cos(x);

Py:=trunc(0.5*y*1)+1;

Canvas.Pen.Width:=100;

for g:=1 to 1000 do Canvas.Pixels[Px,Py]:=clGreen;

end;

end;


l:=Form1.Height div 2;

begin


for Px:=0 to Form1.Width do begin

x:=Px*3*pi/Form1.Width;

y:=cos(x);

Py:=trunc(0.5*y*1)+1;

canvas.Pen.Width:=40;

canvas.Pixels[Px,Py]:=clRed;

for g:=1 to 1000 do

canvas.Pixels[Px,Py]:=clWhite;

canvas.Pixels[Px,Py]:=clRed;

for g:=1 to 1000 do

canvas.Pixels[Px,Py]:=clWhite;

canvas.Pixels[Px,Py]:=clYellow;

end;

end;


end;
procedure TForm1.FormCreate(Sender: TObject);

begin


Form1.Color:=clWhite;

end;


end.

Мысал 12. Берілген функциялардың графиктерін салу: ; ;

Тапсырманы орындау технологиясы:

unit Graph;

interface

uses


аWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;


type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Chart1: TChart;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TLineSeries;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private


{ Private declarations }

public


{ Public declarations }

end;
var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

VAR T0,TK,Q,W,Y1,Y2,Y3 :REAL;

i,H :real;

begin

Q:=StrToFloat(Edit1.Text);



W:=strToFloat(Edit2.Text);

H:=StrToFloat(Edit3.Text);

T0:=StrToFloat(Edit4.Text);

TK:=StrToFloat(Edit5.Text);

i:=T0;

Series1.Clear;



Series2.Clear;

Series3.Clear;

while i<=TK do

begin


Y1:=exp(-Q*i)*sin(W*i);

Y2:=-exp(-Q*i);

Y3:=exp(-Q*i);

Series1.AddXY(i,Y1,'',clTeeColor);

Series2.AddXY(i,Y2,'',clTeeColor);

Series3.AddXY(i,Y3,'',clTeeColor);

i:=i+h;

end;


end;

end.
Қосымшаның сыртқы келбеті:




Мысал 13. Экранда тіктөртбұрыштың қозғалысын, яғни тіктөртбұрыш бір уақытта бізден көкжиекке дейін «ұшады» да, өз өсі бойымен айналады.


Тапсырманы орындау технологиясы:

Шаршының центрге қатысты төбелерінің ығысуын пайдалану.

Ауқымдау кезінде диагональдың өлшемі және центрдің орналасуы өзгереді.

Айналу кезінде – төбелердің центрге қатысты ығысуы.


unit Unit1;
interface
uses

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

Dialogs, StdCtrls;

type


TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }



public

{ Public declarations }

end;
var

Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);

var


x,y,dx,dy,dx1,dy1,xn,yn,xc,yc,xn1,yn1: real;

t,k,r:real; // шаршының бұрышы

i,j:integer;

procedure sq(x,y,dx,dy:integer); // шаршыны бейнелеу

begin

Canvas.MoveTo(x+dx,y+dy); // ауқым



Canvas.LineTo(x-dy,y+dx);

Canvas.LineTo(x-dx,y-dy);

Canvas.LineTo(x+dy,y-dx);

Canvas.LineTo(x+dx,y+dy);

end;

begin


r:=100; // шаршының қабырғасының өлшемінің жартысы

xn:=Form1.Width div 2; // бастапқы және соңғы нүктелердің координаттары

yn:=Form1.Height div 5*2;

xc:=Form1.Width+xn;

yc:=Form1.Height-yn;

dx:=r; // бастапқы мәндерді анықтау

dy:=0;

k:=0.95;


t:=0;

while (t<100) do begin // экранға кадрлеп шығару

Canvas.Pen.Color:=clGreen;

sq(round(xn),round(yn),round(dx),round(dy));

xn1:=xn*k+(1-k)*xc; // ауқымдау

yn1:=yn*k+(1-k)*yc;

r:=r*k;
{ Бұрылу }

t:=t+1; // айналудың бұрышын үлкейту

dx1:=r*cos(t);

dy1:=r*sin(t);

for j:=1 to 100000 do // уақытша тоқтату

Canvas.Pen.Color:=clWhite; // шаршыны өшіру

sq(round(xn),round(yn),round(dx),round(dy));

dx:=dx1; // шаршының парметрлерін айырбастау

dy:=dy1;

xn:=Form1.Width div 2;

yn:=yn1;

end;


end;
procedure TForm1.FormCreate(Sender: TObject);

begin


Form1.Color:=clWhite;

end;


end.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет