Android中moveTo、lineTo、quadTo、cubicTo、arcTo詳解

來源:互聯網
上載者:User

標籤:

1、Why

最近在寫android畫圖經常用到這幾個什麼什麼To,一開始還真不知道cubicTo這個方法,更不用說能不能分清楚它們了,所以特此來做個小筆記,記錄下moveTo、lineTo、quadTo、cubicTo、arcTo的作用,在自訂view的時候經常用到。
接下來也會分享下這幾天寫的幾個東西。相信對於新手也會有點協助,高手也幫忙看看有沒錯,歡迎吐槽吐槽。

2、moveTo

moveTo 不會進行繪製,只用於移動移動畫筆。
結合以下方法進行使用。

3、lineTo

lineTo 用於進行直線繪製。

mPath.lineTo(300, 300);canvas.drawPath(mPath, mPaint);

預設從座標(0,0)開始繪製。

剛才我們不說了moveTo是用來移動畫筆的嗎?

mPath.moveTo(100, 100);mPath.lineTo(300, 300);canvas.drawPath(mPath, mPaint);

把畫筆移動(100,100)處開始繪製,效果

4、quadTo

quadTo 用於繪製圓滑曲線,即貝茲路徑。

mPath.quadTo(x1, y1, x2, y2) (x1,y1) 為控制點,(x2,y2)為結束點。

同樣地,我們還是得需要moveTo來協助控制。

mPath.moveTo(100, 500);mPath.quadTo(300, 100, 600, 500);canvas.drawPath(mPath, mPaint);

效果

5、cubicTo

cubicTo 同樣是用來實現貝茲路徑的。

mPath.cubicTo(x1, y1, x2, y2, x3, y3) (x1,y1) 為控制點,(x2,y2)為控制點,(x3,y3) 為結束點。

那麼,cubicTo 和 quadTo 有什麼不一樣呢?

官方是這麼說的:

Same as cubicTo, but the coordinates are considered relative to the current point on this contour.

說白了,就是多了一個控制點而已。

然後,我們想繪製和上一個一樣的曲線,應該怎麼寫呢?

mPath.moveTo(100, 500);mPath.cubicTo(100, 500, 300, 100, 600, 500);

看看效果:

一模一樣!

如果我們不加 moveTo 呢?

則以(0,0)為起點,(100,500)和(300,100)為控制點繪製貝茲路徑:

6、arcTo

arcTo 用於繪製弧線(實際是截取圓或橢圓的一部分)。

mPath.arcTo(ovalRectF, startAngle, sweepAngle) , ovalRectF為橢圓的矩形,startAngle 為開始角度,sweepAngle 為結束角度。

mRectF = new RectF(10, 10, 600, 600);mPath.arcTo(mRectF, 0, 90);canvas.drawPath(mPath, mPaint);

由於new RectF(10, 10, 600, 600)為正方形,又截取 0 ~ 90 度 ,則所得曲線為四分之一圓的弧線。

效果

Android中moveTo、lineTo、quadTo、cubicTo、arcTo詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.