Sto lavorando a un progetto che genera una serie di curve quadratiche di Bezier e le collega insieme, mantenendo la pendenza dalla fine di un segmento all'inizio della successiva per rendere la transizione uniforme. Il problema è che mentre il percorso è scorrevole, tende a uscire frequentemente dallo schermo.
Il modo in cui è fatto al momento:
P0 = new Point(0, gapStart);
P2 = new Point(wallWidth, gapEnd);
P1 = getAnchorPoint();
dove:
GapStart è il P2.y della curva precedente
wallWidth è una costante
gapEnd è l'unico aspetto casuale della generazione di grotte È il valore di Y a cui la curva finirà.
La funzione getAnchorPoint prende i punti 0 e 2 e genera un punto di ancoraggio in modo che la pendenza all'inizio di questo segmento sia uguale alla fine del segmento precedente.
Quindi la domanda principale è, quali valori può essere gapEnd per garantire che la curva successiva abbia un gapEnd che non invierà la curva dallo schermo?
In altre parole, come posso determinare i valori minimo e massimo di gapEnd in modo che la prossima curva sia sicura?
Inoltre, è importante che questi valori non impongano la seguente curva ad essere impossibile: cioè non possono consentire alla curva successiva di non avere una possibile soluzione che consentirebbe una generazione continua della curva.