三角形路径的弯曲边?

use*_*513 4 java graphics android 2d canvas

我在画布上绘制一个三角形,如:

canvas.moveTo(0, 30);
canvas.lineTo(40, 0);
canvas.lineTo(40, 40);
canvas.lineTo(40, 40);
canvas.lineTo(0, 30);
Run Code Online (Sandbox Code Playgroud)

并在我的画布上获得正确的三角形.但我需要稍微弯曲两侧并用特定颜色填充该路径.最简单的方法是什么?绘制弧线?但是如何填充对象呢?

这是我需要得到的

谢谢!

Sim*_*ris 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();
Run Code Online (Sandbox Code Playgroud)

这是一个适合你的例子.