夜半突來興致,看了下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...