如何用canvas畫出完美的數學曲線?? |
尚未結案
|
avalokita
一般會員 發表:29 回覆:35 積分:12 註冊:2003-09-02 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
avalokita 您好: 底下程式碼供您參考。
< class="code">function fn(x: double):double;
var
pi : double;
begin
pi := 3.141592653;
result := exp(-0.01*x)*sin(6*x*pi/180);
end; procedure TForm1.Button1Click(Sender: TObject);
var
y : array[0..300] of single;
x, sx, sy : integer;
scale: double;
begin
sx := 100; // 設定描繪原點
sy := 200;
scale := 150;
for x:=0 to 300 do
y[x] := scale*fn(x); // 放大函數值
// 連線方式:
Form1.Canvas.MoveTo(sx 0, round(sy-y[0]));
for x:=1 to 300 do
begin
Form1.Canvas.LineTo(sx x, round(sy-y[x]));
end;
// 畫點方式:
Form1.Canvas.Pen.Width := 2;
Form1.Canvas.Pen.Color := clRed;
sy := 300;
for x:=0 to 300 do
begin
Form1.Canvas.MoveTo(sx x, round(sy-y[x]));
Form1.Canvas.LineTo(sx x, round(sy-y[x]));
end;
end; RichTop 敬上 =====*****
把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題!
=====#####
|
avalokita
一般會員 發表:29 回覆:35 積分:12 註冊:2003-09-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |