最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實(shí)現(xiàn)Path平滑的涂鴉效果實(shí)例

 更新時(shí)間:2017年10月17日 08:58:52   作者:滿月寫  
這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)Path平滑涂鴉效果的相關(guān)資料,通過本文介紹的方法修改后會(huì)讓線條平滑很多,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

在最近的一個(gè)項(xiàng)目中做了一個(gè)涂鴉的效果,手指快速移動(dòng),會(huì)出現(xiàn)折線,這篇文章記錄筆觸優(yōu)化。下面話不多說了,來一起看看詳細(xì)的介紹吧。

優(yōu)化前


優(yōu)化

設(shè)計(jì)到的類:Paint,Path

Path類記錄了坐標(biāo)點(diǎn)集合決定線條軌跡,Paint決定怎么畫

Paint處理

//連接的外邊緣以圓弧的方式相交
paint.setStrokeJoin(Paint.Join.ROUND); 
//線條結(jié)束處繪制一個(gè)半圓
paint.setStrokeCap(Paint.Cap.ROUND);

Path處理

這里用的到有個(gè)叫貝塞爾曲線的概念。關(guān)于貝塞爾曲線公式,它是依據(jù)幾個(gè)位置任意的點(diǎn)坐標(biāo)繪制出的一條光滑曲線。
在Path添加點(diǎn)坐標(biāo)的時(shí)候,使用Path#quadTo(float,float,float,float) 代替 Path#lineTo(float,float)  。

lineTo(float,float) 從上一個(gè)點(diǎn)到某個(gè)指定的點(diǎn)新增一條線

quadTo(float,float,float,float) 從上一個(gè)點(diǎn)到某個(gè)指定的點(diǎn)新增一條二次方的貝塞爾曲線

項(xiàng)目中用的時(shí)候,又小優(yōu)化了一下,代碼如下:

 if (Math.abs(lastX - x) < 3 && Math.abs(lastY - y) < 3) {
 } else {
  mPath.quadTo(lastX, lastY, (x + lastX) / 2, (y + lastY) / 2);
  lastX = x ;
  lastY = y ;
 }

效果


線條拐彎處是不是平滑了很多,仔細(xì)的童鞋可能會(huì)發(fā)現(xiàn)整個(gè)線條有參差不齊的感覺,這個(gè)是抖動(dòng)導(dǎo)致的,這個(gè)我們以后再說。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論

三门峡市| 淮安市| 抚松县| 叙永县| 辽中县| 阿荣旗| 阿巴嘎旗| 德州市| 涟源市| 龙口市| 河南省| 舒城县| 启东市| 大厂| 洪洞县| 桑日县| 上栗县| 宝坻区| 当雄县| 南岸区| 五台县| 剑阁县| 营口市| 忻城县| 民县| 留坝县| 潮安县| 岐山县| 吕梁市| 蕉岭县| 宁晋县| 洛阳市| 伊吾县| 穆棱市| 密山市| 高要市| 银川市| 罗田县| 永嘉县| 仙游县| 绥中县|