91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android實現Path平滑的涂鴉效果實例

發布時間:2020-10-17 22:51:14 來源:腳本之家 閱讀:180 作者:滿月寫 欄目:移動開發

前言

在最近的一個項目中做了一個涂鴉的效果,手指快速移動,會出現折線,這篇文章記錄筆觸優化。下面話不多說了,來一起看看詳細的介紹吧。

優化前

Android實現Path平滑的涂鴉效果實例

優化

設計到的類:Paint,Path

Path類記錄了坐標點集合決定線條軌跡,Paint決定怎么畫

Paint處理

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

Path處理

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

lineTo(float,float) 從上一個點到某個指定的點新增一條線

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

項目中用的時候,又小優化了一下,代碼如下:

 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 ;
 }

效果

Android實現Path平滑的涂鴉效果實例

線條拐彎處是不是平滑了很多,仔細的童鞋可能會發現整個線條有參差不齊的感覺,這個是抖動導致的,這個我們以后再說。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

什邡市| 乐都县| 焉耆| 锦州市| 疏勒县| 格尔木市| 台东市| 景泰县| 福贡县| 临湘市| 麦盖提县| 安庆市| 伽师县| 通化市| 自贡市| 三江| 句容市| 大悟县| 云龙县| 昔阳县| 普兰店市| 桂林市| 丰顺县| 梅州市| 阳江市| 扬州市| 临邑县| 泗洪县| 温州市| 嵊泗县| 青冈县| 莎车县| 莱芜市| 博客| 海丰县| 克什克腾旗| 互助| 藁城市| 巫溪县| 会昌县| 印江|