十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
貝塞爾曲線:
貝塞爾曲線于1962,由法國工程師皮埃爾·貝塞爾所廣泛發(fā)表,他運(yùn)用貝塞爾曲線來為汽車的主體進(jìn)行設(shè)計(jì)。貝塞爾曲線最初由 Paul de Casteljau 于 1959 年運(yùn)用 de Casteljau 演算法開發(fā),以穩(wěn)定數(shù)值的方法求出貝茲曲線。貝塞爾曲線主要用于二維圖形應(yīng)用程序中的數(shù)學(xué)曲線,曲線由起始點(diǎn),終止點(diǎn)(也稱錨點(diǎn))和控制點(diǎn)組成,通過調(diào)整控制點(diǎn),貝塞爾曲線的形狀會發(fā)生變化。
在此舉一個(gè)例子,實(shí)現(xiàn)貝塞爾曲線,基于以下場景:
上面的圖片,我們可以見到一個(gè)白色的區(qū)域,邊緣為弧形,這條弧線便是我們用貝塞爾曲線畫出來的,然后我們要實(shí)現(xiàn)隨著手指的上滑,弧線慢慢變直線,往下滑再慢慢變弧線。
1、首先我們自定義一個(gè)View,然后畫出貝塞爾曲線,想畫出貝塞爾曲線,要設(shè)置它的起點(diǎn),終點(diǎn),和控制點(diǎn)。
以下紅色區(qū)域分別為我們設(shè)置的起點(diǎn),控制點(diǎn),終點(diǎn)。
初始化畫筆以及各點(diǎn)如下:
private Paint mPaint; private int centerX, centerY; private PointF start, end, control; mPaint = new Paint(); mPaint.setColor(Color.WHITE); mPaint.setStyle(Paint.Style.FILL); mPaint.setAntiAlias(true); //起點(diǎn) start = new PointF(0, 0); //終點(diǎn) end = new PointF(0, 0); //控制點(diǎn) control = new PointF(0, 0);