我在Canvas上绘制一个三角形,如:
canvas.moveTo(0, 30);
canvas.lineTo(40, 0);
canvas.lineTo(40, 40);
canvas.lineTo(40, 40);
canvas.lineTo(0, 30);
在我的画布上获得正确的三角形。但我需要稍微弯曲两侧并用特定颜色填充该路径。最简单的方法是什么?绘制弧线?但是如何填充对象呢?
谢谢!
答案 0 :(得分:6)
编辑:我注意到你使用的是android的画布,而不是HTML Canvas,对不起。这个概念完全相同,除非你打电话给quadTo()
而不是quadraticCurveTo()
,所以我的例子仍然可以帮助你。
同样在Android上你使用canvas.drawPath(path, paint)
并传入一个Paint.style设置为FILL_AND_STROKE的绘画。
您需要构建路径fill()
,然后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();