Тапсырма: Эпициклоидтың графигын салыңыз:
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.
Тақырып: Проекциялар
Сұрақтар:
Жазыќ геометриялыќ проекция.
Проекцияларды негізгі екі класы.
Проекциялардың классификациясы
Тапсырма:
Кеңістікте салынған катердің өзенді айналып жүзіп жүргенін көрсететін проект құрыңыз.
Достарыңызбен бөлісу: |