我想繪製一個帶圓角的矩形。我有一個JavaScript路徑,這樣做,但JavaScript的arcTo方法需要一個矩形(來定義它的橢圓形),然後一個參數設置掃描。有人可以解釋arcTo的最後兩個參數嗎?
但是,在Android版本中有三個參數。矩形橢圓形(我認爲我已經正確定義了),然後是startAngle和sweepAngle(我不瞭解它的用法),但是我的弧形看起來不像我期待的那樣,猜猜他們應該工作。
有沒有人知道這個好教程?
具體而言,我試圖理解如果我試圖從12 - 3繪製一個弧(在時鐘面上),然後假設我有一條從3然後需要從3到6等轉角。
這裏是我的代碼(忽略弧數字在那裏,現在......這只是我的猜測,在這可能如何,由於無法對前面的,更明智的嘗試最新的迭代):
Path ctx = new Path();
ctx.moveTo(X+5,Y); //A
ctx.lineTo(X+W-5,Y);//B
ctx.arcTo(new RectF(X+W, Y, X+W, Y+5), -180, 90); //B arc
ctx.lineTo(X+W,Y+H-5); //C
ctx.arcTo(new RectF(X+W,Y+H,X+W-5,Y+H),90,180); //C arc
ctx.lineTo(X+W/2 +6,Y+H);
ctx.lineTo(X+W/2,Y+H+8);
ctx.lineTo(X+W/2-6,Y+H);
ctx.lineTo(X+5,Y+H);
ctx.arcTo(new RectF(X,Y+H,X,Y+H-5),180,270);
ctx.lineTo(X,Y+5);
ctx.arcTo(new RectF(X,Y,X+5,Y),270,0);
Paint p = new Paint();
p.setColor(0xffff00ff);
canvas.drawPath(ctx, p);
多謝。
嘿,我在繪製弧線的時候遇到了問題,我試着按照你的建議,但我無法得到它..你能看到我問的問題嗎?在那裏,我有我的問題詳細,所以你最好理解。 http://stackoverflow.com/questions/17449339/how-to-define-te-startangle-and-sweepangle-for-arcto-method-android謝謝! :) – 2013-07-03 13:46:17
想象你的弧被一個矩形包圍(並且一直延伸到該矩形的內部,即使只顯示你想要顯示的部分)。第一個參數是橢圓內點的起點位置,第二個參數是要抓取完整橢圓的度數,以弧線爲弧段。 – 2013-07-03 17:18:29
謝謝!我知道我做錯了什麼。我將最終度數值傳遞給sweepAngle參數。考慮到startAngle參數,我不得不通過多少度數來抓取,正如我所說的那樣,而不是finalAngle – 2013-07-03 18:01:10