Himi原創,轉載務必注明出處!
原文地址: http://blog.csdn.net/xiaominghimi/archive/2011/06/20/6555828.aspx
首先對于《賽貝爾曲線》不是很了解的童鞋,請自覺白度百科、google等等...
為了方便偷懶的童鞋,這里給個《貝賽爾曲線》百科地址,以及一段話簡述《貝賽爾曲線》:
《貝賽爾曲線》白度百科快速地址: http://baike.baidu.com/view/4019466.htm
貝塞爾曲線又稱貝茲曲線或貝濟埃曲線,一般的矢量圖形軟件通過它來精確畫出曲線,貝茲曲線由線段與節點組成,節點是可拖動的支點, 線段像可伸縮的皮筋;
上面這一段話其實就“ 線段像可伸縮的皮筋 ”這一句比較重要,也很容易理解;
至于貝賽爾曲線的實現,在Android中極其的簡單,因為它是Android封裝的一個方法,這個能不簡單么。。。。。。只不過它隱藏的比較深,它隱藏于Path類中,方法如下:
android.graphics. Path .quadTo(float x1, float y1, float x2, float y2)
Since: API Level 1
此方參數解釋:
第一個參數:操作點的x坐標
第二個參數:操作點的y坐標
第三個參數:結束點的x坐標
第四個參數:結束點的y坐標
從API中看出,賽貝爾曲線從API-1就開始支持了;
熟悉方法后,下面就來實現:
SurfaceView框架不多講,看過我博客的都應該知道的;
直接看MySurfaceView類,此類繼承SurfaceView ,是游戲的主視圖
這里為了更清晰的講解:這里部分代碼先不貼出來了,最后會整體貼出,當然源碼也是免費在最后提供~
首先是定義相關的成員變量:
本類構造函數:
接著我把繪制貝賽爾曲線封裝一個方法了,函數如下:
最后是用戶觸屏監聽函數以及邏輯函數:
整個代碼很easy~主要是貝賽爾函數的參數,尤其是操作點,操作點的各種不同可以實現不同的效果,這里我簡單的統一的講操作點設置成用戶觸屏點的x,y的一半,呵呵偷懶了~嘻嘻~
我把貝賽爾的操作點寫在了邏輯logic()函數中,不斷的執行,并且每次利用nextInt函數得到隨機的操作點,主要為了讓其曲線不斷的變化從而形成一個震動的曲線運動軌跡;
ok,效果接圖如下:
這里可能由于圖片是靜止的效果看起來不是很明顯,大家可以運行源碼來觀察 ,好了~本節就這樣吧;下面貼出整個MySurfaceView的源碼:(最后有本項目的源碼下載地址)
本章源碼下載地址:(仍舊免費下載)
http://download.csdn.net/source/3378910
.
.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
