贝塞尔曲线和画布

时间:2012-04-03 12:14:14

标签: android android-canvas

如何在画布中绘制贝塞尔曲线。我只有起点和终点。我想从起点到终点画线。我怎么能这样做?

3 个答案:

答案 0 :(得分:30)

您可以使用Path.quadTo()Path.cubicTo()。示例可以在SDK示例(FingerPaint)中找到。在你的情况下,你只需要计算中间点,然后将你的三个点传递给quadTo() ..

一些代码:

  • (x1,y1)(x3,y3)分别是您的起点和终点。
  • 仅创建一次paint对象(例如在构造函数中)

    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);
    

答案 1 :(得分:5)

使用Path,您可以绘制立方和二次贝塞尔曲线。请参阅cubicTo()quadTo()

答案 2 :(得分:0)

您需要设置颜色......您的代码是正确的,并在x3,x3中将x3,y3更改为quadTO()