2012-04-03 27 views
20

Tuval üzerine bezier eğrisini nasıl çizebilirim? Sadece başlangıç ​​noktası ve bitiş noktası var. Başlangıç ​​noktasından bitiş noktasına doğru çizgi çizmek istiyorum. Bunu nasıl yapabilirim?Bezier eğrisi ve kanvas

cevap

29

bakınız. Örnekler SDK Örneklerinde (FingerPaint) bulunabilir. Senin durumunda sadece sizin için ..

Bazı kod orta noktasını hesaplamak ve quadTo() sonra da üç puan geçmesi gerekir:

  • (x1, y1) ve (x3, y3, başlangıç ​​ve bitiş noktalarınızdır.
  • sadece bir kez (örneğin Yapıcınızda olarak) Eğer kod doğruysa ... rengini ayarlamak ve quadTO() yılında x3,y3 için x3,x3 değiştirmeniz gerekir

    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

Bunu eğri için verebilir misiniz? –

+1

Bu, bir eğriyi isterseniz düz bir çizgi ile sonuçlanır, daha sonra kontrol noktasını (burada, x2, y2) başka bir şeye değiştirin. Hızlı bir örnek şöyle olabilir: - x2 = (x3 + x1)/3 y2 = (y3 + y1)/3 –

5

Path ile kübik ve kuadratik bezier eğrileri çizebilirsiniz. Bunun için Path.quadTo() veya Path.cubicTo() kullanabilirsiniz cubicTo() ve quadTo()

0

boya nesne oluşturmak.

İlgili konular