Cálculo de una curva cuádruple entre dos puntos xy

Tengo dos puntos (x, y) de inicio y fin. Quiero animar de principio a fin, pero en lugar de seguir un camino lineal, quiero crear una trayectoria curva.

Estoy bastante seguro de que no estoy buscando un alivio porque no quiero afectar la velocidad de la animación, solo quiero calcular una trayectoria curva.

Me di cuenta de que necesitaba algún tipo de punto de control, como se muestra en esta imagen:

enter image description here

Pero no tengo idea de cómo implementarlo. Me encantaría crear una función que tomara los siguientes parámetros

function calculateXY(start, end, controlpoint, percentage);

Donde porcentaje sería un número del 0 al 100% y donde 0 devolvería la posición inicial y el 100% la posición final.

La solución no necesita estar en Objective-C, podría estar en cualquier lenguaje de programación. Simplemente no puedo entender mi matemática :)

6

2 Respuestas

Consulte este enlace , y especialmente la ecuación 2, que parece fácil de implementar en el código.

Encontré un fragmento de código que lo hace por ti.

3
agregado

Mire Las rutas de coczadores de Cocoa: (NSBezierPath)) .

Parece que es posible que no admita curvas Bézier cuadráticas, por lo que deberá convertir a cubic .

0
agregado