Текстовый документ

Посмотреть архив целиком
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
Tp=record
x,y:real;
end;
TAp=array of Tp;

type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
GroupBox1: TGroupBox;
ta: TEdit;
tb: TEdit;
Label1: TLabel;
Label2: TLabel;
tn: TEdit;
Label3: TLabel;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
mx: TEdit;
my: TEdit;
Button2: TButton;
CheckBox1: TCheckBox;
Button1: TButton;
Button3: TButton;
Timer1: TTimer;
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
sx,sy,a,b:real;
n,t:integer;
m1:TAp;
m2:array of TPoint;
implementation

{$R *.dfm}
function f(x:real):real;
begin
f:=cos(x);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
h:real;
he,w,i:integer;
min,max:real;
begin
He:=Image1.Height div 2;
W:=Image1.Width div 2;
a:=StrToFloat(Ta.Text);
b:=StrToFloat(Tb.Text);
n:=StrToInt(Tn.Text);

h:=(b-a)/n;
SetLength(m1,1);
m1[0].x:=a;
m1[0].y:=f(a);
for i:=1 to n do
begin
SetLength(m1,i+1);
m1[i].x:=m1[i-1].x+h;
m1[i].y:=f(m1[i].x);
//canvas.TextOut(10,20*i,FloatToStr(m1[i].X)+' '+FloatToStr(m1[i].Y));
end;
//Scale
if CheckBox1.Checked then
begin
min:=m1[0].y;
max:=m1[0].y;

for i:=1 to High(m1)-1 do
begin
if min if max>m1[i].y then max:=m1[i].y;
end;
Image1.Canvas.MoveTo(w,0);
Image1.Canvas.LineTo(w,2*he);

Image1.Canvas.MoveTo(0,he);
Image1.Canvas.LineTo(2*w,he);

Image1.Canvas.TextOut(w+10,he+10,'O');
Image1.Canvas.TextOut(w+2,0+10,'Y');
Image1.Canvas.TextOut(2*w-10,he+2,'X');
sx:=image1.Width/abs(b-a);
sy:=image1.Height/abs(max-min);
He:=abs(round(Image1.Height*min/(max-min)));
W:=abs(round(Image1.Width*a/(b-a)))
end else
begin

sx:=StrToFloat(mx.Text);
sy:=StrToFloat(my.Text);
Image1.Canvas.MoveTo(w,0);
Image1.Canvas.LineTo(w,2*he);

Image1.Canvas.MoveTo(0,he);
Image1.Canvas.LineTo(2*w,he);

Image1.Canvas.TextOut(w+10,he+10,'O');
Image1.Canvas.TextOut(w+2,0+10,'Y');
Image1.Canvas.TextOut(2*w-10,he+2,'X');
end;


for i:=0 to n do
begin
SetLength(m2,i+1);
m2[i].X:=round(sx*m1[i].x+w);
m2[i].Y:=round(-sy*m1[i].y+he);
//canvas.TextOut(10,20*i,IntToStr(m2[i-1].X)+' '+IntToStr(m2[i-1].Y));
end;

Image1.Canvas.Polyline(m2);
//Axes

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
end;


procedure TForm1.CheckBox1Click(Sender: TObject);
begin
mx.Enabled:=true;
my.Enabled:=true;
if CheckBox1.Checked then
begin
mx.Enabled:=false;
my.Enabled:=false;
end;
end;

//procedure TForm1.Button1Click(Sender: TObject);
//begin
//Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
//end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if button3.Caption='????????' then
begin
Timer1.Enabled:=true;
button3.Caption:='????';
end else
begin
Timer1.Enabled:=false;
button3.Caption:='????????';
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if t>=n then t:=0;


image2.Canvas.pen.Color:=clWhite;
image2.Canvas.Brush.Color:=clWhite;
image2.Canvas.Ellipse(m2[t].X-200,m2[t].Y-200,m2[t].X+200,m2[t].Y+200);

image2.Canvas.pen.Color:=clRed;
image2.Canvas.Brush.Color:=clRed;
image2.Canvas.Ellipse(m2[t].X-20,m2[t].Y-20,m2[t].X+20,m2[t].Y+20);
sleep(10);
Image2.Canvas.Polyline(m2);
t:=t+1;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
t:=0;
end;

end.

Случайные файлы

Файл
Readme.txt
Readme.txt
Readme.txt
ReadMe.txt
vopr.txt




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.