我如何在画布(Canvas)上绘制贝塞尔曲线(Bezier Curve)。我只有起点和终点。我想从起点到终点绘制一条曲线。我该怎么做?
我如何在画布(Canvas)上绘制贝塞尔曲线(Bezier Curve)。我只有起点和终点。我想从起点到终点绘制一条曲线。我该怎么做?
Path.quadTo()
或Path.cubicTo()
来实现。示例可以在SDK示例(FingerPaint)中找到。在您的情况下,您只需要计算中间点,然后将这三个点传递给quadTo()
。Paint paint = new Paint() {
{
setStyle(Paint.Style.STROKE);
setStrokeCap(Paint.Cap.ROUND);
setStrokeWidth(3.0f);
setAntiAlias(true);
}
};
final Path path = new Path();
path.moveTo(x1, y1);
final float x2 = (x3 + x1) / 2;
final float y2 = (y3 + y1) / 2;
path.quadTo(x2, y2, x3, y3);
canvas.drawPath(path, paint);
您需要设置颜色... 您的代码是正确的,只需将 x3,x3
更改为 x3,y3
在 quadTO()
中。