Lua繪製正弦曲線

2022-04-04 15:27:30 字數 2303 閱讀 7723

夜半突來興致,看了下wxlua的圖形處理部分,感覺挺好玩,就試著寫了一段畫正弦曲線的**。為了實現動畫效果特意新增了延遲效果,感覺延遲的效率好低,畫的時候視窗拖都拖不動。

效果圖:

**部分:

**--

--------------------------

--點和線實現正弦曲線

--wxlua支援

--aurhor chuwp

--date 2010.10.30

----------------------------

require("

wx")local

nmotionflag =0

---------------

--主函式

---------------

function

main()

frame 

=wx.wxframe( wx.null, wx.wxid_any, 

"wxlua scribble",

wx.wxdefaultposition, wx.wxsize(

450, 

450),

wx.wxdefault_frame_style )

ifnmotionflag ==0

then

frame:connect(wx.wxevt_left_down, onlclick)

endframe:show(

true

)end

------------------------

--左鍵點選開始畫曲線

------------------------

function

onlclick(event)

nmotionflag =1

local

drawdc 

=wx.wxclientdc(frame)

pen 

=wx.wxpen(wx.wxcolour(0, 

255, 

0), 

1, wx.wxsolid)

drawdc:setpen(pen)

--座標軸x

fori=50

, 300

do--

drawdc:drawline(1, 1, 100, 100)

ifmath.mod(i,2) 

==0then

drawdc:drawpoint(

50, i)

endend

--座標軸y

forj=30

, 400

doif

math.mod(j,2) 

==0then

drawdc:drawpoint(j, 

175)

ifmath.mod(j,

20) ==0

then

fork =0

, 6dodrawdc:drawpoint(j, 

175-

k)end

endend

end--

正弦曲線

local

ntempx =50

local

ntempy 

=175

pen 

=wx.wxpen(wx.wxcolour(

255, 0, 

0), 

1, wx.wxsolid)

drawdc:setpen(pen)

fori=50

, 400

dodelay()

local

nrec =i

/12drawdc:drawline(ntempx, ntempy, i, 

175+50*

math.sin

(nrec))

ntempx =i

ntempy 

=175+50

*math.sin

(nrec)

enddrawdc:setpen(wx.wxnullpen)

end--

----------------

--延遲處理

------------------

function

delay()

localx =

os.clock

()while

os.clock()-

x <=

0.01

doend

end

正弦曲線生成

下圖為乙個正弦曲線週期 下圖為乙個正弦曲線週期的1 4部分 整形數的連續位乘除均採用左移和右移,微控制器可以單週期完成。如 x 1 x 2 x 2 x 4 x 3 x 8 uint16 t d bits 16 陣列的位寬 uint16 t d bits mark 0x01 brief basecur...

貝塞爾曲線學習 正弦曲線

以前通過自定義view可以繪製出各種效果,但這些效果多數還是存在於規則的影象,今天學習貝塞爾曲線,來繪製一些更特別的線條。簡單來說貝塞爾曲線通過控制點,可以繪製出各種路徑。一般我們常用的二階貝塞爾和三階貝塞爾 對應的控制點數量不同 這也是android提供給我們的方法。網上介紹的資料很多,可以全面了...

win32畫正弦曲線

include include 數學函式 include c 格式化字串需要 using namespace std lresult callback mywndproc hwnd hwnd,uint umsg,wparam wparam,lparam lparam int winapi winma...