Delphi ортасында анимация құру


КІРІСПЕ

Бағдарламалау тілін жүзеге асыру саласындағы бағдарлама құрумен әлемге әйгілі Borland компониясы 1996 ж. Delphi жаңа буынының компиляторын шығарды. Borland корпорациясы аз ғана мерзім ішінде Delphi-дің 7 негізгі версиялары мен бірнеше модификацияларын шығарды. Delphi 7 версиясында өте көп өзгерістер енгізілген. Бағдарламалармен қамтаматсыз етудің тиімді өңдеу құралдарын қажет ету «жылдам жасау» ортасы деп аталатын бағдарламалау жүйелерінің пайда болуына алып келді. Жылдам жасау RAD - жүйесіне «Rapid Application Development» жүйесінің негізі визуалды жобалау және оқиғаны өңдеуді программалар технологиясы жатады, оның мағынасы өңдеу үнемсіз жұмыстың көп бөлігін өзіне алады да, бағдарламашыға диалогты терезелерді және оқиғаны өңдеу функциясын құрастыру жұмыстары қалады.

Delphi-дің ұлғайтылған мүмкіндіктері графикамен, мультимедиямен, дерек қорларымен жұмыс істейтін және динамикалық құрылымдармен қосымшаларды құруға мүмкіндік береді.

Бұл курстық жұмыстың мақсаты - Delphi бағдарламалау ортасын пайдалана отырып, графикалық бағдарламаларды жасау арқылы білімімді кеңейтіп, бағдарламалау ортасында жұмыс істеу қабілетімді жоғарлату. Бағдарламаның міндеттері - Delphi - дің графикалық мүмкіндіктерін пайдалана отырып, бағдарламалар құрастыруды игеру; графикаға байланысты компоненттермен жұмыс жасауды үйрену; бағдарламаның кодын жаза білу; Delphi ортасында сенімді жұмыс істеу үшін оны толықтай меңгеру; Delphi - дің графикадан басқа мүмкіндіктерін пайдалана алу; Delphi - дің қазіргі кездегі пайдасы туралы дағдыларын қалыптастыру.

  1. DELPHI - ДІҢ ГРАФИКАЛЫҚ бағдарламалау. Индикаторларды пайдалану
Қозғалысты еліктету немесе анимация эффектін көрсету негізгі үш қадамдың орындалуымен қамтылады: Объектіні экран бетіне шығару (кейде шағын үзіліс орнатылғаны жөн) ; Объектіні экраннан алып тастау;
  • Объектіні басқа жерге шығару.

Диаграмма мен график сандық берілгендерді ұғынуды жеңілдетуге бейімделген және Delphi ортасы олармен жұмыс атқаратын компоненттерімен қамтылған. Диаграммаларды екі топқа бөлуге болады:

  • Индикаторлар;
  • Күрделі диаграммалар және графиктер.
Индикатор жалпы диаграмманың қарапайым түріне жатады және ол арқылы кейбір ұзақ уақыт орындалатын іс-әрекет (мысалы, дискетті форматтау, файлды көшіру, т. с. с. ) процестердің көрінісін мәтіндік және графикалық түрде бейнелеуге арналған.

Delphi ортасы жұмыстың орындалуын көрсететін ProgressBar және Gauge компоненттерін ұсынады.

ProgressBar ортаның Win32 парағында орналасқан, бұл компонент белдеу түрінде болып, кейбір ұзақ уақыт орындалатын іс-әрекеттің көрінісін экран бетіне шығарады. [1, 2]

ProgressBar

1 сурет. Delphi ортасының Win32 парағы

ProgressBar компонентінің индикация өрістері мен реңінің түсін өзгертетін қасиеттері жоқ, сондықтан бұл параметрлер контейнер параметрлерімен анықталады. Әдетте графикалық белдеу көк түспен боялады.

ProgressBar компонентінің келесі қасиеттерін негізгі деп санайды:

Min және Max - индикатордың алғашқы және соңғы мәндерінің аралығын анықтайды. Келісімше Min=0%, Max=100% деп саналады.

  • Position - орындалған іс-әрекеттің салыстырмалы көлемін Min және Max мәндеріне сәйкес анықтайды. Мысалы, Min=0, Max=80 деп көрсетілсе, онда Position-ның 20 деген мәніне сәйкес орындалған жұмыстың көлемі 25% деп саналады.
  • Step - индикатордың көлемі өскендегі позицияның қандай мәнге өсіп отыратынын анықтайды.

Индикатордың позициясын программада көрсетуге болады, мысалы:

ProgressBar1. Position:=35;

ProgressBar-ның элементінің позициясын StepIt (өсімшесі Step) және StepBy (Delta:Integer) (өсімшесі Delta) процедуралары арқылы өзгертуге болады. Мысалы, ProgressBar1. StepBy (13) .

Бұл оператор бойынша ProgressBar1-дің индикаторы 13-ке өсіп отырады.

ProgressBar1 компонентінің Caption немесе Text қасиеттері жоқ болғандықтан, жұмыс атқару индикаторын жазумен қамту үшін, Label компонентін қолдануға болады.

Samples парағында орналасқан Gauge элементі қарапайым диаграммаларды шығаруда қолданылады. Gauge компоненті арқылы белгілі бір параметрдің мәнін пайызға сәйкестеп, лайықтап шығарады.

Kind қасиеті шығарылатын диаграмманың түрін анықтайды және оның мәні келесідей бола алады:

  • GkHorizontalBar - көлденең төртбұрыш;
  • gkVerticalBar - тік төртбұрыш;
  • gkPie - сектор;
  • gkNeedle - спидометр;
  • gkText - тек қана мәтін.

2 сурет. Диаграмма түрлері

BorderStyle - жиектерінің түрі bsSingle деп анықталса, онда жиегі жіңішке сызықпен салынады. Егер bsNone деп анықталса - жиегі болмайды. ForeColor - индикатордың түсін, BackColor диаграмманың индикатордан бос аймағының түсін, Progress - параметр мәнін пайызға сәйкестеп анықтайды.

MinValue және MaxValue - параметрдің ең кіші және ең үлкен мәндерін анықтайды (әдетте ол мәндер - 0% және 100% ) .

Мысалы, бейнетаспаны ойнау Animate компоненті арқылы іске асырылады. Бұл компонент тек тығыздалмаған графикалық бейне бөлігін ойнауға бейімделген. Осы әрекеттің орындалуын графикалық түрде ProgressBar компоненті арқылы көрсетуге болады.

График және диаграмма. [3, 4]

Chart компоненті әртүрлі күрделі диаграммаларды салуда қолданылады. Бұл компоненттің құрамындағы көптеген қасиеттері өздері объект ретінде анықталған және олардың ішкі қасиеттері болады.

Chart

  1. сурет. Additional парағының Chart компоненті

Тәжiрибеде Chart компонентінің параметрлерін анықтау әрекеттері Editing Chart редакторының терезесінде анықталады. Ол терезені шақыру үшін формадағы TСhart терезесiн екі рет сырт еткізіңіз немесе тышқанның оң жақ батырмасын басқандағы Edit Chart опциясын таңдаңыз. Ашылған редактордың терезесіндегі Series параметрінде Add батырмасын басу арқылы диаграмманың немесе графиктің түрін анықтауға болады.

Берілгендердің шығар көзі Series=> Data Source парағында анықталады. Егер берілгендердің жиыны қосымшаның орындалу барысында қалыптастандырылса, онда No data деп көрсету керек.

DBChart және QRChart компоненттерінің шығар көзін Table - кесте деп анықтауға болады.

Диаграмма құрылғандағы пайдаланылатын берілгендердің мәндерін басқару үшін Add, Delete, Clear әдістері қолданылады.

Add (Const AValue :Double; Const ALabel:String; Acolor:Tcolor) : LongInt функциясы Avalue параметрімен анықталған мәнді диаграммаға қосады. Диаграмма шығарылғанда, Alabel - мәндің атын, ал Aсolor - оның түсін анықтайды.

Delete (ValueIndex:LongInt) процедурасы ValueIndex нөмірімен анықталған мәнді жояды. Жалпы барлық мәндерді жою үшін Clear процедурасы қолданылады.

Delphi ортасы схемаларды, сызбаларды, түрлі иллюстрацияларды экранға шығаратын программаларды неғұрлым қарапайым жолмен құруға мүмкіндік береді.

Графикалық элементтер объекттің үстінгі жағында шығарылады (формалар немесе Image компоненті), бұған Canvas қасиеттері сәйкес келеді. Объектінің бетіне графиктік элементтерді (түзу сызық, шеңбер және т. б. ) шығару үшін осы объектінің Canvas қасиетін қолдану әдісін пайдаланамыз.

Мысалы, form1. Canvas. Restangle (10, 10, 100, 100) ; Бет (Холст)

Қарапайым графиктерді шығару әдісінде сурет салуға болатын абстрактты бет (холст) ретінде Canvas қасиеттері қарастырылады. Бұл бет (холст) жеке нүктелерден - пиксельдерден тұрады, олардың әрқайсысы көлденең (х) және тік (у) координаталар арқылы анықталады.

Қарандаш және қылқалам

Қарапайым графиктерді бет (холст) бетіне салуды қамтамасыз ететін әдістер үшін, қарандаш және қылқалам қолданылады: қарандашты түзулер мен контурларды сызуға қолданады, ал қылқаламды аймақтарды шекаралық контурмен бояуға қолданады.

Графиктерді бетке (холстқа) шығаратын арнайы қарандаш және қылқаламға Pen (қарандаш) Brush (қылқалам) қасиеттері сәйкес келеді, бұлар TPen және TBrush типтерін көрсетеді. Осы объектілердің қасиеттерінің мәні шығарылатын графикалық элементтердің түрін анықтайды.

TPen объектісінің мынадай қасиеттері бар:

Color - түзудің түсі (контуры) ;

Width - түзудің қалындығы (пиксель бойынша) ;

Style - түзудің түрі.

Pen. Color қасиетіннің мәні ретінде мынадай атаулы тұрақтыларды қолдануға болады (TColor) : clBlack, clOlive, clGray, clBlue, clMaroon, clNavy, clSilver, clAqua, clGreen, clPurple, clRed, clWhite.

Pen. Style қасиеті мынадай мәндерді қабылдайды:

psSolid - біркелкі түзу;

psDash - пункттирлік түзу, ұзын штрихтар;

psDot - пункттирлік түзу, қысқа штрихтар;

psClear - түзу көрінбейді.

Егер Pen. Width қасиетінің мәні бірден үлкен болса, онда пункттирлік түзулер біркелкі түзулер болып шығады.

Қылқалам (Canvas. Brush) тұйық аймақтарды сызатын және сол облыстарды бояуды қамтамасыз ететін әдіс ретінде қолданылады. Қылқалам объект сияқты екі қасиетке ие:

Color - тұйық облысты бояйтын түс;

Style - аймақты толықтыру стилі (типі) .

Brush. Color қасиетінің мәні ретінде жоғарыда айтылып өткен TСolor типті атаулы тұрақтылардықолдануға болады.

Brush. Style қасиеті мындай мәндерді қабылдайды :

bsSolid - біркелкі бояу;

bsClear - облыс болмайды;

bsHorizontal - көлденен штрих;

bsVertical - тік штрих;

bsFDiagonal - ілгері қарай көлбеген диагоналдық штрих.

Мәтінді шығару

Графикалық объекттің бетіне мәтін шығару үшін TextOut әдісі қолданылады. Осы әдістің шақыру нұсқауы жалпы жағдайда мынадай түрде болады:

Объект. Canvas. TextOut(x, y, Текст) ;

Мұндағы х, у - шығатын мәтіннің координат нүктелері; Текст - айнымалы немесе символдық типті тұрақты (шығарылатын мәтін) .

TextOut әдісімен шығарылатын мәтін облысының оң жақ шекара координаттарын, PenPos қасиетін пайдыланып алуға болады, мысалы:

TextOut(PenPos. x, PenPos. y, (‘руб. ’) ; [5, 6, 7]

. Қарапайым графиктерді сызу әдістері

LineTo әдісі түзуді қарандаштың ағымдағы орнынан координатасы көрсетілген нүктеге дейін сызады.

Объект. Canvas. LineTo(х, у) ;

MoveTo әдісі қарандашты белгіленген нүктеге апарады:

Объект. Canvas. MoveTo(х, у) ;

Ellipse әдісі эллипс сызады (жеке жағдайда, шеңбер - параметр мәндеріне тәуелді болады) :

Объект. Canvas. Ellipse(x1, y1, x2, y2) ;

Мұндағы х1, у1, х2, у2 - ішіне эллипс сызылатын тіктөртбұрыш координаттары.

Arc әдісі доға сызады:

Объект. Canvas. Arc(x1, y1, x2, y2, х3, у3, х4, у4) ;

Мұндағы х1, у1, х2, у2 - эллипс параметрлері, эллипс бөлігі яғни сызылатын доға болады.

Rectangle әдісі тіктөртбұрыш сызады:

Объект. Canvas. Rectangle (x1, y1, x2, y2) ;

Мұндағы х1, у1 және х2, у2 - сол жақ үстінгі және оң жақ астынғы тіктөртбұрыш бұрыштарының координаттары.

FillRect әдісі Brush. Color қасиеті арқылы берілген түсімен тіктөртбұрышты бояйды. Бұл әдістің бір ғана параметрі бар, бұл структуранының TRect типі. Мысалы:

var

R :Rect(20, 20, 150, 150) ;

with Canvas do

begin

Brush. Color:=clRed;

FillRect(R) ;

end;

end;

Айтып кеткендей, программа орындайтын графиктерді бетке шығару үшін Canvas қасиеті келеді. Canvas объектісінің Pixels қасиетін пайдалана отырып, графикалық беттің кез келген нүктесін қажетті түске бояуға болады. Мысалы, нұсқауы

Form1. Canvas. Pixels[10, 10] :=clRed;

форм бетіндегі нүктені қызыл түске бояйды.

Мысал1. Форма бетіне олимпиядалық жалау суретін салайық. Объектіні Image компонентінің үстіне шығарамыз. Формаға Image, button1 компоненттерін орналастырамыз. Button1 компонентінің Caption қасиетіне «сурет салу» мәнін енгіземіз. Button1 компонентінің Onclick оқиғасын құрамыз. Коды:

procedure TForm1. Button1Click(Sender: TObject) ;

begin

with Image1. canvas do

begin

pen. Width:=1; Pen. Color:=clblack;

brush. Color:=clcream; Rectangle(30, 30, 150, 115) ;

pen. Width:=2; brush. Style:=bsclear;

Pen. Color:=clblue; ellipse(40, 40, 80, 80) ;

Pen. Color:=clblack; ellipse(70, 40, 110, 80) ;

Pen. Color:=clred; ellipse(100, 40, 140, 80) ;

Pen. Color:=clyellow; ellipse(55, 65, 95, 105) ;

Pen. Color:=clgreen; ellipse(85, 65, 125, 105) ;

end;

end; [8]

ScrollBar, ColorDialog, ComboBox, Panel және Button компоненттерін пайдалана отырып, геометриялық фигураларды құру.

  1. Геометриялық фигураны шығару үшін Additional қосымша бетіндегі Shape1 компонентін орналастырамыз. Heigth қасиетіне 209; қасиетіне 393; қасиетіне 56; қасиетіне 48 мәнін тағайындаймыз.
  2. Фигураның өлшемін өзгерту үшін ScrollBar1, ScrollBar2 айналым жолақтарын орналастырамыз:

1 кесте. ScrollBar1, ScrollBar2 компоненттерінің қасиеттерін өзгерту

Компоненттер
Объектілер инспекторы терезесіне енгізілетін өзгертулер
Компоненттер: ScrollBar1: TScrollBar
Объектілер инспекторы терезесіне енгізілетін өзгертулер:

Heigth: 17

Width: 481

Left: 16

Top: 288

Kind: cbHorizontal

Компоненттер: ScrollBar2 TScrollBar
Объектілер инспекторы терезесіне енгізілетін өзгертулер:

Heigth: 289

Width: 17

Left: 496

Top: 16

Kind: cbVertical

ScrollBar1 компонентін екі рет басып, ашылған ScrollBar1Change оқиға өңдеуші процедурасына төмендегі мәліметтерді енгіземіз:

procedure TForm1. ScrollBar1Change(Sender: TObject) ;

begin

Shape1. Width:=ScrollBar1. Position*3;

end;

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

procedure TForm1. ScrollBar2Change(Sender: TObject) ;

begin

Shape1. Height:=ScrollBar1. Position*2;

end;

  1. Бірнеше басқару элементтерін топтау үшін Panel компонентін орналастырамыз және төмендегі кестеде берілгендей олардың қасиеттеріне өзгертулер енгіземіз:

2 кесте. Panel1:TPanel компоненттерінің қасиеттерін өзгерту

Компонент
Объектілер инспекторы терезесіне енгізілетін өзгертулер
Компонент: Panel1:TPanel
Объектілер инспекторы терезесіне енгізілетін өзгертулер:

Caption:

Heigth: 89

Width: 521

Left: 8

Top: 328

Kind: cbHorizontal

  1. Фигуралардың түрін таңдау үшін ComboBox1 компонентін орналастырамыз және төмендегі кестеде берілгендей қасиеттеріне өзгертулер енгіземіз:

3 кесте. ComboBox компонентінің қасиеттерін өзгерту

Компонент
Объектілер инспекторы терезесіне енгізілетін өзгертулер
Компонент:

ComboBox1:

тсomboBox

Объектілер инспекторы терезесіне енгізілетін өзгертулер:

Caption: бос қалдырамыз

Items: stRectangle

stSquare

stRoundSquare

stRoundRect

stEllipse

stCircle

Font: шрифтің түсін және өлшемін өзгертеміз

ComboBox1 компонентіне екі рет басып, ашылған ComboBox1 Change оқиға өңдеуші процедурасына төмендегі мәліметтерді енгіземіз:

procedure TForm1. ComboBox1Change(Sender: TObject) ;

begin

shape1. Shape:=TShapeType(ComboBox1. ItemIndex) ;

end;

  1. Dialogs бетіне ColorDialog1 компонентін форма бетіне орналастырамыз.
  2. Фигураның түсін таңдау үшін Button1 компонентін орналастырып, тақырып жолына «Фигураның түсі» мәтінін жазамыз және Button1Click оқиға өңдеуші процедурасына төмендегі программа мәтінін енгіземіз:

procedure TForm1. Button1Click(Sender: TObject) ;

begin

if ColorDialog1. Execute then

shape1. Brush. Color:=ColorDialog1. Color;

end;

Форманың түсін таңдау үшін Button2 компонентін орналастырып, тақырып жолына «Форманың түсі» мәтінін жазамыз және Button2Click оқиға өңдеуші процедурасына төмендегі программа мәтінін енгіземіз:

procedure TForm1. Button2Click(Sender: TObject) ;

begin

if ColorDialog1. Execute then

Form1. Color:=ColorDialog1. Color;

end;

Фигураның жиегінің түсін таңдау үшін Button1 компонентін орналастырып, тақырып жолына «Фигураның жиегінің түсі» мәтінін жазамыз және Button3Click оқиға өңдеуші процедурасына төмендегі программа мәтінін енгіземіз:

procedure TForm1. Button3Click(Sender: TObject) ;

begin

if ColorDialog1. Execute then

shape1. Pen. Color:= ColorDialog1. Color;

end;

  1. Форманы жабу үшін BitBtn1 компонентін орналастырып, Кind қасиетіне bcClose мәнін қабылдаймыз.

Программаны сақтап орындаймыз. Программаның орындалу нәтижесі келесі суреттерде көрсетілген. [9, 10, 11]

  1. сурет. Геометриялық фигуралар шығаруға арналған форма терезесі

  1. сурет. Түс таңдауға арналған терезе

Функциялардың графиктері мен диаграммаларын сызу

Sin (K* pi/10 ) функциясы берілген, K=0…20. Функцияның графигін салайық (4 - сурет) .

Функцияның графигін сызу үшін

Chart1. SeriesList[0] . AddXY(k,

( sin(k*pi/10) ), ' ', clGreen) оперторын қолдануға болады.

unit Graf_sin_s;

interface

uses

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

TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type

TForm1 = class(TForm)

Chart1: TChart;

Series2: TLineSeries;

procedure FormActivate(Sender: TObject) ;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *. DFM}

procedure TForm1. FormActivate(Sender: TObject) ;

var k: integer;

begin

for k:=0 to 20 do

Chart1. SeriesList[0] . AddXY(k, (sin(k*pi/10) ), ' ', clGreen) ; end; end.

  1. сурет. Синус функциясының графигі

2 АЙНАЛМАЛЫ ШАР БАҒДАРЛАМАСЫ

2. 1. Бағдарламаның құрылу жолы.

Программалау іскерлігін үйрену үшін нақты есептер шығарып, программасын жаза білу қажет. Ол үшін программалау тілі мен оны құру ортасын меңгеру керек. Delphi ортасы осы жұмыстарды істеуге көптеген мүмкіндіктер береді. Оларды тізіп айтар болсақ, өте көп. Мысалы, форма терезесінен тыс мәтін жазу, терезенің кез келген бұрышында пиксельдер арқылы мәтін жазу, анимациялар түрлерін құру. Әртүрлі графикалық сызбалар салу. Delphi қазіргі дамыған технология заманында кез келген адамға қажет бағдарламалардың бірі. Осы бағдарламалау ортасы арқылы бір ғана салада емес, көптеген салада қызмет атқаруда. Бір ғана графикалық және мультимедиялық бағдарламалар емес, мәліметтер қорына қатысты бағдарламалар, күрделі болсын, қарапайым болсын қызықты ойын бағдарламалары құрылуда. Және ғылыми зерттеулерде, күрделі есептерді шешуде де осы бағдарламалау ортасы қолданылады.

«Айналмалы шар» бағдарламасына келер болсақ, бұл қызықты графикалық бағдарлама. Бағдарламада жоғарыда айтылып кеткен форма терезесінен тыс мәтін жазу, пиксельдер арқылы мәтін жазу, айналмалы мәтін осының бәрі қамтылған десе де болады. Бұл бағдарлама Delphi ортасының графикалық мүмкіндіктерінің зор екендігіне дәлел бола алады. Айналмалы шардың ерекшелігі оның бір ғана емес бірнеше түрі бар, олар: баяу айналатын түрі, тез айналатын түрі, үлкейтіліп - кішірейтілетін түрі. Бұл бағдарламаның нақты бір мақсаты я болмаса ережесі жоқ. Яғни қызықты, әрі әдемілік үшін құрылған графикалық бағдарлама болып табылады.

Бағдарламаның құрылу жолы Delphi ортасын іске қосып Unit1, Unit2 терезелерімен жұмысты бастау. Одан кейін Unit1, Unit2 терезелерінің қасиеттерін өзгерту. Осы бағдарламада қамтылған бірнеше бағдарламалардың қасиеттерін өзгертіп, бағдарламаға енгізу. Содан кейін бағдарламаның кодын қатесіз, мұқият кодтау терезесіне енгізу. Сосын F9 - ті немесе «бағдарламаны жіберу» батырмасын басу. [12, 13]

7 сурет. «Айналмалы шар» бағдарламасын құру терезесі

  1. Бағдарлама коды

program Sharik; {$R-, S-}

uses

Graphics, forms, SysUtils, windows, Classes;

const q=24; //көбірек болса, баяу және ырғақты болады

var

ce:tCanvas;

s :pbytearray;

mb:array[1. . q] of Graphics. tBitmap;

m :array[0. . 1200, 0. . 1600{Экран өлшемі}, 1. . 3] of byte;

mk:array[0. . 1024, 1. . 768] of record x, y, t:smallInt end;

hook, dx, dy, yc, xc, q256_sy, q256, kx, ky, p, i, j, sx, sy, y, x, z, h, w, sch, scw, xr, x1, x2, y1, y2, t, x3, yr, he2, we2, h2, w2:integer;

kpi2, pi2, r, e, re, rs, rr:real; time:tTimeStamp; pt, pn:tPoint;

b, bw:Graphics. tBitmap;

Procedure izm(var dx:integer) ;

begin dx:=-dx; if abs(dx) <4 then dx:=dx*2 else if abs(dx) <7 then inc(dx, random(2) -1) end;

begin

Application. Initialize;

Application. Run;

Application. processMessages;

sch:=screen. height; he2:=sch div 2;

scw:=screen. width; we2:=scw div 2;

h:=sch *2 div 3; h2:=h div 2; w:=h; w2:=h2;

ce:=tCanvas. create;

ce. Handle:=GetDC(0) ;

b:=Graphics. tBitMap. create; b. pixelformat:=pf24bit; b. width:=scw; b. height:=sch;

b. canvas. copyRect(rect(0, 0, scw, sch), ce, rect(0, 0, scw, sch) ) ;

ce. font. size:=18; ce. font. color:=$FF; ce. font. style:=[fsBold] ;

with b. canvas do begin

//жарнамаға арналған орын:

font:=ce. font; textOut(we2-60, he2-40, ' OVT - 12 - 1')

end;

y1:=(sch-h) div 2; y2:=sch-y1;

x1:=(scw-w) div 2; x2:=scw-x1;

//Түстер массивіндегі экран жазбасы

for y:=0 to sch-1 do move(b. ScanLine[y] ^, m[y, 0, 1], scw*3) ;

// Барлық кадр 1 рет үшін координат есебі

pi2:=pi/2; kpi2:=sqrt(pi2) ; re:=he2; rs:=h2; q256:=256-q div 2;

for y:=1 to h-1 do begin

for x:=1 to w-1 do begin

r:=sqrt(sqr(h2-y) +sqr(w2-x) ) ;

if (r>0) and(r<=rs) then begin

rr:=r/rs;

e:=ArcTan(sqrt(1-sqr(rr) ) /rr) ;

rr:=(re-re*e/pi2) /r;

mk[x, y] . x:=we2-trunc((w2-x) *rr) ;

mk[x, y] . y:=he2-trunc((h2-y) *rr) ;

mk[x, y] . t:=trunc(sqrt(e) *400/kpi2) ;

end

else mk[x, y] . t:=-1;

end;

end;

bw:=graphics. tBitMap. create; bw. pixelformat:=pf24bit;

bw. width:=w+16; bw. height:=h+16;

GetCursorPos(pn) ;

time:=DateTimeToTimeStamp(now) ;

dx:=-4-random(4) ; dy:=-4-random(4) ; xc:=x1; yc:=y1;

for j:=1 to 90 {оборотов} do begin

sx:=0; sy:=0;

GetCursorPos(pt) ; if (pn. x<>pt. x) or(pn. y<>pt. y) then break;

application. processmessages;

for i:=1 to q do begin

inc(sx, scw div q) ;

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Delphi-дің мультимедиалық мүмкіндіктері
WEBbrowser компонентін қолданып бағдарлама құру
Delphi-дің мультимедиалық мүмкіндіктері туралы
Бағдарламалау тілдерін оқытудың виртуалды ортасын жобалау және бағдарлама құру
Delphi дің мультимедиялық мүмкіндіктері
Форма оқиғалары
Delphi - де «Мозаика» ойын бағдарламасын жазу әдістері
Microsoft Office туралы түсінік және түрлері
“Delphi программалау ортасында графикалық компоненттерді пайдалану әдістемесі”
Қоңырау кестесі бойынша автоматты түрде қоңырау соғуға арналған Автоматтандырылған Қоңырау бағдарламасы
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz