web-dev-qa-db-fra.com

Courbe de Bézier et toile

Comment je peux dessiner la courbe de Bézier dans la toile. Je n'ai qu'un point de départ et un point d'arrivée. Je veux tracer une ligne du point de départ au point final. Comment puis-je faire ceci?

20
edi233

Vous pouvez utiliser Path.quadTo() ou Path.cubicTo() pour cela. Des exemples peuvent être trouvés dans les exemples de SDK (FingerPaint). Dans votre cas, vous devez simplement calculer le point milieu et passer ensuite vos trois points à quadTo() ..

Un code pour vous: 

  • (x1, y1) et (x3, y3) sont vos points de départ et d'arrivée respectivement. 
  • créer l'objet Paint une seule fois (dans votre constructeur, par exemple)

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

Avec Path vous pouvez dessiner des courbes de Bézier cubiques et quadratiques. Voir cubicTo() et quadTo()

5
aromero

Vous devez définir la couleur ... votre code est correct et remplacez x3,x3 par x3,y3 dans la quadTO().

0
Ravee S Gohiel