Mam napisac program rysujący krzywą określoną w procedurze rozeta tylko nie wiem jak to do konca zrobic
to jest to co napisałem do tej pory
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, ExtCtrls;
type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
SpinEdit1: TSpinEdit;
procedure PaintBox1Paint(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure TForm1.Rozeta; //to ma być tutaj czy w sekcji private?
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
mx,my,R:integer;
t:real;
implementation
{$R *.dfm}
procedure TForm1.Rozeta;
var x,y:real;
begin
x:=mx+R*sin(2*t)*cos(t);
y:=my+R*sin(2*t)*sin(t);
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
var x,y:real;
begin
mx:=(PaintBox1.Width div 2);
my:=(PaintBox1.Height div 2);
R:=SpinEdit1.Value;
t:=0;
Rozeta;
PaintBox1.Canvas.MoveTo(round(x),round(y));
while t<2*pi do
begin
Rozeta;
Paintbox1.Canvas.LineTo(round(x),round(y));
t:=t+0.01;
end;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
PaintBox1.Repaint;
PaintBox1Paint(Sender);
end;
end.