Een quad-curve berekenen tussen twee xy-punten

Ik heb twee (x, y) punten begin en einde. Ik wil van begin tot eind animeren, maar in plaats van op een lineaire manier te gaan, wil ik een gebogen pad maken.

Ik ben er vrij zeker van dat ik niet op zoek ben naar een versoepeling omdat ik de animatiesnelheid niet wil beïnvloeden, ik wil gewoon een gebogen pad berekenen.

Ik kwam erachter dat ik een soort controlepunt nodig had, zoals in deze afbeelding:

enter image description here

Maar ik heb geen idee hoe ik het moet implementeren. Ik zou graag een functie willen maken die de volgende parameters heeft

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

Waar het percentage een getal van 0 - 100% zou zijn en waarbij 0 de startpositie zou teruggeven en 100% de eindpositie.

De oplossing hoeft niet inobjective-cte zitten, het kan in elke programmeertaal zijn. Ik kan mijn hoofd niet om de wiskunde heen krijgen :)

6

2 antwoord

Bekijk de deze link en speciaal formule 2 die gemakkelijk in code kan worden geïmplementeerd.

Heeft een fragment gevonden dat dit voor u doet.

3
toegevoegd

Kijk naar Cocoa's bezier paths: (NSBezierPath) .

Het lijkt erop dat quadruatische bezier-curven mogelijk niet worden ondersteund, dus u moet converteren naar cubic .

0
toegevoegd