Sto implementando la logica della curva di Bezier cubica nella mia Applicazione Android.Trova un nuovo punto di controllo quando si modifica il punto finale nella curva cubica di bezier
Ho implementato il codice della curva di Bezier cubico su tela in onDraw della visualizzazione personalizzata.
// Path to draw cubic bezier curve
Path cubePath = new Path();
// Move to startPoint(200,200) (P0)
cubePath.moveTo(200,200);
// Cubic to with ControlPoint1(200,100) (C1), ControlPoint2(300,100) (C2) , EndPoint(300,200) (P1)
cubePath.cubicTo(200,100,300,100,300,200);
// Draw on Canvas
canvas.drawPath(cubePath, paint);
Visualizzo il codice sopra riportato nell'immagine seguente.
[Aggiornamento]
Logic for selecting first control points, I've taken ,
baseX = 200 , baseY = 200 and curve_size = X of Endpoint - X of Start Point
Start Point : x = baseX and y = baseY
Control Point 1 : x = baseX and y = baseY - curve_size
Control Point 2 : x = baseX + curve_size and y = baseY - curve_size
End Point : x = baseX + curve_size and y = baseY
voglio permettere all'utente di cambiare EndPoint di sopra della curva, e sulla base dei nuovi punti finali, ho invalida la tela.
Ma il problema è che Curva mantiene due punti di controllo, che devono essere ricalcolati in seguito alla modifica in EndPoint.
Come, voglio solo trovare nuovi punti di controllo quando EndPoint cambiamento da (300.200) a (250.250)
Come seguente immagine:
Please help me per calcolare due nuove Punti di controllo basati sul nuovo punto finale che la forma della curva manterrà la stessa del punto finale precedente.
Mi riferisco seguenti link di riferimento durante la ricerca:
http://pomax.github.io/bezierinfo/
http://jsfiddle.net/hitesh24by365/jHbVE/3/
http://en.wikipedia.org/wiki/B%C3%A9zier_curve
Qualsiasi link di riferimento apprezzato anche in risposta di questa domanda.
come stai calcolando i primi due punti di controllo? Stai cercando di disegnare in base all'evento di movimento dell'utente? –
@ArunCThomas: ho aggiornato la domanda con la logica per la selezione del punto di controllo predefinito –
Sono piuttosto sicuro che lo copra in http: //pomax.github.io/bezierinfo/# polybezier =) –