全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1423
推到 Plurk!
推到 Facebook!

如何用canvas畫出完美的數學曲線??

尚未結案
avalokita
一般會員


發表:29
回覆:35
積分:12
註冊:2003-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-25 11:20:33 IP:211.74.xxx.xxx 未訂閱
請問各位前輩們: 如何用canvas畫出完美的數學曲線?? 因為canvas上的pixel是以integer為單位, 產生數學的函數圖形時,常不能把實數的值表表現出來, 使得曲線都是斷斷續續的點。 請問..該如何產生個漂亮的數學曲線圖呢?
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-25 12:28:05 IP:211.76.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-30 23:38:45 IP:203.70.xxx.xxx 未訂閱
richtop 謝謝您~~~ 我果然畫出漂亮的曲線了.... 真的很謝謝~~
系統時間:2024-05-17 12:42:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!