【问题标题】:Draw a perfect curve connecting three points绘制连接三点的完美曲线
【发布时间】:2022-05-23 06:29:30
【问题描述】:

我想在我的屏幕上画一条连接三个点的曲线

PointA = (480,46)
PointB = (160,137)
PointC = (0,228)

如何使用 Android API 绘制曲线?

【问题讨论】:

  • 什么样的曲线?圆弧?
  • 你不能用 2 条贝塞尔曲线画出一个完美的圆,但你可以添加更多来近似它

标签: android


【解决方案1】:

无论我想要什么,我都可以使用以下代码来生成它:

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    PointF mPoint1 = new PointF(w/1.2F, h/1.2F);
    PointF mPoint2 = new PointF(w/24, h/1.2F);
    Path myPath1 = new Path();
    Paint paint  = new Paint();
    paint.setAntiAlias(true);
    paint.setStyle(Style.STROKE);
    paint.setStrokeWidth(2);
    paint.setColor(Color.WHITE);

    myPath1 = drawCurve(canvas, paint, mPoint1, mPoint2);
    canvas.drawPath(myPath1, paint);

}

private Path drawCurve(Canvas canvas, Paint paint, PointF mPointa, PointF mPointb) {

    Path myPath = new Path();
    myPath.moveTo(63*w/64, h/10);
    myPath.quadTo(mPointa.x, mPointa.y, mPointb.x, mPointb.y);
    return myPath;  
}

这将找到屏幕的两侧(横向模式),并将在屏幕上绘制一条完美的曲线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    相关资源
    最近更新 更多