Wie zeichnen Sie eine gekrümmte Linie zwischen 2 Punkten auf Leinwand?

Habe ich versucht viele verschiedene Ansätze von Beispielen rund um das web, aber ich kann nicht scheinen, um diese zu arbeiten. Ich bin versucht zu machen, eine Methode, die zieht eine geschwungene Linie zwischen 2 Punkten auf einer Leinwand. Die Kurve sein sollte, definiert durch einen radius-parameter.

Unten ist mein Aktueller code.

public OverlayBuilder drawCurvedArrow(int startX, int startY, int endX, int endY, int curveRadius, int padding, int color) {
    PointF mPoint1 = new PointF(startX, startY);
    PointF mPoint2 = new PointF(endX, endY);
    Paint paint  = new Paint();
    paint.setAntiAlias(true);
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeWidth(12);
    paint.setColor(color);
    Path myPath = new Path();

    myPath.moveTo(startX, startY);
    myPath.quadTo(mPoint1.x, mPoint1.y, mPoint2.x, mPoint2.y);
    canvas.drawPath(myPath, paint);

    return this;
}

Bearbeiten

Das problem ist, dass ich kann nicht herausfinden, wie die Krümmung der Linie, die gezeichnet wird auf der Leinwand.

  • Versuchen canvas.drawArc().
  • Willst du damit sagen, dass Sie möchten, zeichnen Sie einen BOGEN zwischen zwei Punkten?
InformationsquelleAutor Langkiller | 2016-05-25
Schreibe einen Kommentar