2012-04-03 44 views
20

どのようにしてキャンバスにベジェ曲線を描くことができますか?私には始点と終点しかありません。私は始点から終点まで線を描きたい。どのように私はこれを行うことができますか?ベジェ曲線とキャンバス

答えて

29

Path.quadTo()または​​を使用してください。例はSDKの例(FingerPaint)にあります。あなたのケースでは、あなたは、単に中間点を計算し、quadTo()に、あなたの三点に合格する必要があります。..

あなたのためのいくつかのコード:

  • (X1、Y1)(X3、Y3 )がそれぞれあなたの始点と終点です。
  • あなたは...あなたのコードが正しいとquadTO()x3,y3x3,x3を変更する色を設定する必要があります(例えば、あなたのコンストラクタで)一度だけ

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

あなたはこれをカーブに与えることができますか? –

+1

カーブが必要な場合は直線になり、ここで(x2、y2)の制御点を他のものに変更します。 簡単な例は次のようになります - X2 =(X3 + X1)/ 3 Y2 =(Y3 + 1 Y1)/ 3 –

0

をペイントオブジェクトを作成します。

関連する問題