貝塞爾曲線小練習

2021-07-29 16:06:40 字數 2694 閱讀 5921

來不及了,快上車。。。。

不叨叨,上**

/**

* 類描述:

*/public

class

mybezier

extends

view

private

void

init()

@override

protected

void

ondraw(canvas canvas)

@override

public

boolean

ontouchevent(motionevent event)

return

super.ontouchevent(event);}}

基礎的貝塞爾曲線我就不講了,網上一搜一大堆。

單純的使用path也完全可以實現手勢軌跡的捕捉,但是path不如貝塞爾曲線優雅,會有鋸齒。**很簡單,我就不囉嗦了。

看這個:

波浪,沒錯,就是浪!

上**:

/**

* 類描述:

*/public

class

mybezier2

extends

view

private

void

init()

@override

protected

void

ondraw(canvas canvas)

mpath.lineto(getwidth() , getheight());

mpath.lineto(0 , getheight());

mpath.close();

canvas.drawpath(mpath , mpaint);

}public

void

startanim()

});animator.start();}}

**也灰常簡單,無非就是畫個曲線,然後動畫讓它動起來,哈哈~

看這個:

仿qq的效果,**也很簡單哦

/**

* 類描述:

*/public

class

mybezier3

extends

framelayout

private

void

init()

@override

protected

void

dispatchdraw(canvas canvas) else

super.dispatchdraw(canvas);

}@override

public

boolean

ontouchevent(motionevent event) else

return

true;

case motionevent.action_move:

if (ismove)

break;

case motionevent.action_up:

curpointx = count;

curpointy = count;

break;

}invalidate();

return

super.ontouchevent(event);

}/**

* 計算路徑

*/private

void

calculatepath()

// 根據角度算出四邊形的四個點

float x1 = startx + offsetx;

float y1 = starty - offsety;

float x2 = x + offsetx;

float y2 = y - offsety;

float x3 = x - offsetx;

float y3 = y + offsety;

float x4 = startx - offsetx;

float y4 = starty + offsety;

float anchorx = (startx + x) / 2;

float anchory = (starty + y) / 2;

mpath.reset();

mpath.moveto(x1, y1);

mpath.quadto(anchorx, anchory, x2, y2);

mpath.lineto(x3, y3);

mpath.quadto(anchorx, anchory, x4, y4);

mpath.lineto(x1, y1);}}

原始碼奉上

參考資料

貝塞爾曲線

1.概述 貝塞爾曲線 b zier curve 又稱 貝茲曲線或貝濟埃曲線,是應用於二維圖形應用程式的數學曲線。一般的向量圖形 軟體通過它來精確畫出曲線,貝茲曲線由 線段與節點組成,節點是可拖動的支點,線段像可伸縮的皮筋,我們在繪圖工具上看到的鋼筆工具就是來做這種向量曲線的。貝塞爾曲線是計算機圖形學...

貝塞爾曲線

由於工作需要,最近在研究乙個類似qq訊息劃掉的效果 很多強迫症患者童鞋對這個簡直是愛不釋手,當然這個也包括我自己 貝塞爾曲線就是這樣的一條曲線,它是依據四個位置任意的點座標繪製出的一條 光滑曲線 在歷史上,研究貝塞爾曲線的人最初是按照已知曲線 引數方程 來確定四個點的思路設計出這種向量曲線繪製法。貝...

貝塞爾曲線

貝塞爾曲線在android中運用廣泛,可以用來繪製各類複雜曲線,因為貝塞爾曲線只需要指定控制點,就能繪製出特定的曲線。其次是做點和點的平滑過渡。為什麼可以做到如上兩點,看下面的講解 首先來說,貝塞爾曲線有階的概念,這個階可以理解為控制點,一階的控制點只有兩個。如上是一階的方程,其中t取值為0到1,可...