貝賽爾曲線大家應(yīng)該都不陌生吧贾惦,如果你還陌生胸梆,那應(yīng)該看看本文示例講解的二、三階貝賽爾曲線须板。
本篇文章從基礎(chǔ)開始碰镜,自定義View來使用Android系統(tǒng)提供的貝賽爾曲線API。
貝塞爾曲線(Bezier Curve)于1962习瑰,由法國工程師皮埃爾·貝塞爾廣泛發(fā)表绪颖,他運用貝塞爾曲線來為汽車的主體進行設(shè)計。
首先我們要知道二杰刽、三階貝賽爾曲線是一種什么樣的曲線呢菠发,二階貝賽爾曲線有一個起始點、一個終止點和一個控制點贺嫂,曲線連接起始點和終止點滓鸠,
并且控制點分別與起始點和終止點的連線是曲線的切線。同樣三階貝賽爾曲線有兩個控制點第喳,下面看一下它們的效果圖糜俗。
二階貝賽爾曲線
三階貝賽爾曲線
基礎(chǔ)鞏固
本示例中主要用了Paint和Path來繪制貝賽爾曲線,下面把它們的相關(guān)基礎(chǔ)知識貼在下面
Paint即畫筆曲饱,可以繪制圖形悠抹、可以繪制文字,有很多屬性設(shè)置方法:
setAntiAlias: 設(shè)置畫筆的鋸齒效果扩淀,為true即給該圖形或文字打上抗鋸齒標(biāo)志
setColor: 設(shè)置畫筆顏色
setAlpha: 設(shè)置Alpha值
setTextSize: 設(shè)置字體尺寸
setStyle: 設(shè)置畫筆風(fēng)格楔敌,Paint.Style.STROKE為空心,Paint.Style.FILL為實心
setStrokeWidth: 設(shè)置空心的邊框?qū)挾?
Path即路徑驻谆,在該類中封裝了許多幾何路徑的方法卵凑,比如
moveTo: 改變起始點的位置
lineTo: 連接某個坐標(biāo)點
arcTo: 繪制弧形路線
addRect: 繪制矩形
addOval: 繪制橢圓
addArc: 繪制圓弧
addCircle: 繪制圓形
還包括我們要用的二、三階貝賽爾曲線的方法
quadTo(float x1, float y1, float x2, float y2): 二階貝賽爾曲線方法
cubicTo(float x1, float y1, float x2, float y2, float x3, float y3): 三階貝賽爾曲線的方法
最后補充兩個單詞:
1胜臊、quadratic [kw?'dr?t?k] adj. 平方的勺卢、二次的
2、cubic ['kju?b?k] adj. 立方的象对、三次的
接下來是自定義三階貝賽爾曲線View的代碼
這是三階貝賽爾曲線的代碼黑忱,如果想看更多代碼請移步到我的GitHub上:
GitHub上示例工程In-depthStudy