2011-04-10 91 views
4

我借鉴了画布三角形,喜欢的东西:弯曲的三角形路径?

canvas.moveTo(0, 30); 
canvas.lineTo(40, 0); 
canvas.lineTo(40, 40); 
canvas.lineTo(40, 40); 
canvas.lineTo(0, 30); 

而且在我的画布得到适当的三角形。但我需要稍微弯曲两侧,并用特定颜色填充该路径。什么是最简单的方法来做到这一点?绘制弧线?但如何填补对象?

This is what I need to get

谢谢!

回答

6

编辑:我注意到你使用的是Android的画布,而不是HTML Canvas,对不起。这个概念是完全一样的,除了你会打电话quadTo()而不是quadraticCurveTo(),所以我的例子仍然应该让你去。

同样在android上,您使用canvas.drawPath(path, paint)并传递一个paint.style设置为FILL_AND_STROKE的paint。

您将需要构建路径fill() it,然后使用stroke()它来获取具有笔划轮廓的填充路径。

要得到那个特定的形状,最简单的方法是绘制两条二次曲线。二次曲线首先需要控制点x,y,然后是终点x,y。两条曲线的控制点应位于所需三角形的中间。这里有一个例子:

ctx.fillStyle = "lightgray"; 

ctx.moveTo(0, 100); 
ctx.quadraticCurveTo(50, 50, 50, 0); 
ctx.quadraticCurveTo(50, 50, 100, 100); 
ctx.lineTo(0, 100); 
ctx.fill(); 
ctx.stroke(); 

Here is that example live for you.