Come posso disegnare la curva di Bezier nella tela. Ho solo inizio punto e punto finale. Voglio tracciare una linea dal punto iniziale al punto finale. Come posso farlo?Curva di Bezier e tela
20
A
risposta
29
È possibile utilizzare Path.quadTo()
o Path.cubicTo()
per quello. Gli esempi possono essere trovati negli esempi SDK (FingerPaint). Nel tuo caso si avrebbe semplicemente bisogno di calcolare il punto di mezzo e superare quindi i vostri tre punti per quadTo()
..
Alcuni codice per voi:
- (x1, y1) e (x3, y3) sono rispettivamente i punti di partenza e di arrivo.
creare l'oggetto vernice solo una volta (per esempio nel costruttore)
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);
5
0
È necessario impostare il colore ... il codice è corretto e cambiare x3,x3
-x3,y3
nel quadTO()
.
puoi dare questo per curva? –
Questo si traduce in una linea retta, se si desidera una curva, quindi modificare il punto di controllo, qui (x2, y2) per qualcos'altro. Un esempio rapido potrebbe essere: - x2 = (x3 + x1)/3 y2 = (y3 + y1)/3 –