Тақырып: компьютерлік графика негіздері жоспар



бет23/30
Дата08.09.2017
өлшемі4 Mb.
#30454
1   ...   19   20   21   22   23   24   25   26   ...   30

Тапсырма: Эпициклоидтың графигын салыңыз:

x:=((a+b)*cos(t))-(a*cos((a+b)*t/a));

y:=((a+b)*sin(t))-(a*sin((a+b)*t/a)).
Әдістемелік нұсқаулар:

1. Программа 2 формадан тұрады: негізгі және анықтамалық. Бірінші формаға мына компоненттерді орналастырыңыз: 2 Edit,1 Button,2 SpeedButton,7 Label, 1 Panel,1 Image. Image (Panel объектінің үстіне орналастырыңыз).



Екінші форманың элементтері: TabbedNotebook, 2 Memo, 2 SpeedButton.


Суретке сәйкес компоненттердің қасиеттерін өзгертіңіздер.
2.‘Epicycloid’ программасының коды:

unit sitter;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons;



type

TForm1 = class(TForm)

Edit1: TEdit; Edit2: TEdit; Button1: TButton;

Label1: TLabel; Label2: TLabel; Label3: TLabel;

Label4: TLabel; Label5: TLabel; Label6: TLabel;

SpeedButton1: TSpeedButton;

Label7: TLabel; Panel1: TPanel; Image1: TImage;

SpeedButton2: TSpeedButton;

procedure Button1Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

private

{ Private declarations }



public

{ Public declarations }

end;

var

Form1: TForm1;

a,b:integer;

implementation

uses sit2;

{$R *.DFM}


{Кнопка батырмасының процедурасы}

procedure TForm1.Button1Click(Sender: TObject);

var

x,y,t:real;



x1,y1:integer;

begin


{мәндерді енгізу}

if (edit1.text='')or(edit2.text='') then

begin

showmessage('Өріске сандар енгізіңіз!');



exit;

end;


a:=strtoint(edit1.text);

b:=strtoint(edit2.text);

if (a<0)or(b<0)then

begin


showmessage(Оң сандар енгізіңіз!');

exit;


end;

begin


Screen.Cursor:=crHourGlass;

{координаталар жүйесінің суреті}

x1:=image1.width div 2;

y1:=image1.height div 2;

with image1.Canvas do

begin

Moveto(x1,0);



lineto(x1,Image1.Height);

Moveto(x1,0);

lineto(x1-5,10);

Moveto(x1,0);

lineto(x1+5,10);

Moveto(0,y1);

lineto(Image1.Width,y1);

lineto(Image1.Width-10,y1-5);

Moveto(Image1.Width,y1);

lineto(Image1.Width-10,y1+5);

textout(Image1.Width-16,y1+2,'X');

textout(x1+1,y1+1,'0');

textout(x1-15,0,'Y');

{графикті салу}

t:=0;


if (b mod a)=0 then repeat

x:=((a+b)*cos(t))-(a*cos((a+b)*t/a));

y:=((a+b)*sin(t))-(a*sin((a+b)*t/a));

pixels[x1+round(x),y1-round(y)]:=clblue;

t:=t+0.001;

until t>=(2*pi)

else repeat

x:=((a+b)*cos(t))-(a*cos((a+b)*t/a));

y:=((a+b)*sin(t))-(a*sin((a+b)*t/a));

pixels[x1+round(x),y1-round(y)]:=clred;

t:=t+0.001;

until t>=(2*a*pi);

end;

label3.Visible:=true;



label4.Visible:=true;

Screen.Cursor:=crDefault;

end;

end;


{№2}

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

Form2.visible:=true;



end;

{№3}

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

image1.canvas.FillRect(clientrect);



label3.Visible:=false;

label4.Visible:=false;

end;

end.
Программаны орындалуға жіберіп, мәндер енгізіп тексеріңіз.


unit sit2;

interface

uses

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

ComCtrls, StdCtrls, Buttons, Tabs, Tabnotbk;

type

TForm2 = class(TForm)

TabbedNotebook1: TTabbedNotebook;

Memo1: TMemo;

Memo2: TMemo;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

private

{ Private declarations }



public

{ Public declarations }

end;

var

Form2: TForm2;



implementation

uses sitter;

{$R *.DFM}


{№!}

procedure TForm2.SpeedButton1Click(Sender: TObject);

begin

showmessage('Студенты гр Инф305-307');



end;

{№2}

procedure TForm2.SpeedButton2Click(Sender: TObject);

begin

close;


end;

end.
Тақырып: Проекциялар



Сұрақтар:

  1. Жазыќ геометриялыќ проекция.

  2. Проекцияларды негізгі екі класы.

  3. Проекциялардың классификациясы

Тапсырма:

Кеңістікте салынған катердің өзенді айналып жүзіп жүргенін көрсететін проект құрыңыз.





    1. Достарыңызбен бөлісу:
1   ...   19   20   21   22   23   24   25   26   ...   30




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

    Басты бет