![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() День добрый. Вообщем такая проблема: нужно построить график уравнения на Делфи в параметрической форме. F(x,y) где
x=(A-B)cos t + Dcos f y=(A-B)sin t + Dsin f где f=(A/B)t Подскажите как сделать нормально ? чтобы в канву выводилось F(x,y) я в этом не бум бум. кто поможет - будет вознагражден. ) Вот допустим так я построил график одного из них: Код:
function F(x:real; var Xmax,Xmin,Ymax,Ymin:real):real; end; var Form1: TForm1; implementation var Xmax,Xmin,Ymax,Ymin:real; {$R *.dfm} function Tform1.F(x:real; var Xmax,Xmin,Ymax,Ymin:real):real; var fi:real; Begin fi:=(9/5)*x; F:=(9-5)*cos(x)+2*cos(fi); Xmax:=50; Xmin:=-50; Ymax:=50; Ymin:=-50; End; procedure TForm1.Button1Click(Sender: TObject); var x,y:real; PX,PY:longInt; begin Image1.Canvas.MoveTo(0,Image1.height div 2); for PX:=0 to Image1.Width do begin x:=Xmin+PX*(Xmax-Xmin)/Image1.Width; y:=F(x,Xmax,Xmin,Ymax,Ymin); PY:=trunc(Image1.Height-(y-Ymin)*Image1.height/(Ymax-Ymin)); image1.Canvas.Pixels[PX,PY]:=clBlack; Image1.Canvas.LineTo(PX,PY); end; end; end. Последний раз редактировалось Admin, 19.11.2009 в 12:30. |