2011-03-13 16 views
12

Enlace: Official SVG Referencecalcular los puntos de control para un camino SVG abreviada/lisa Bezier curva

hombres y mujeres Hola, estoy teniendo algunos problemas con la taquigrafía (definida por S o s en pathdata) curvas de Bézier se definen como rutas de SVG. Específicamente, cómo calcular el primer punto de control.

Digamos que tenemos un comando curveTo con puntos de control y (X1, Y1)(X2, Y2), de punto final y el punto (X3, Y3)(X0, Y0) de partida.

A continuación viene un comando de curva abreviada/suave con un primer punto de control (X4, Y4) y un segundo punto de control (X5, Y5). Supongamos que todo está en coordenadas absolutas para simplificar.

¿Cómo se calcularía el primer punto de control desconocido (X4, Y4) de los otros puntos conocidos?

+0

posible duplicado de [Cómo encontrar puntos de control para un BezierSegment dado inicio, fin y 2 puntos de intersección en C# - AKA Cubic Bezier 4 puntos de interpolación] (http://stackoverflow.com/questions/2315432/how-to-find-control-points-for-a-bezi ersegment-given-start-end-and-2-intersecti) – Gabe

Respuesta

15

Su primer punto es el último punto de la curva anterior. En este caso sería (x3, y3). Entonces, su segundo punto en la mano corta es el punto de terminación para la longitud de la curva que representa la taquigrafía.

Si hemos de traducir sus caminos en ambas versiones de larga duración tendríamos:

M X0, Y0 C X1, Y1 X2, Y2 X3, Y3 
M X3, Y3 C XR, YR X4, Y4 X5, Y5 

Cuando XR, YR es el reflejo del último punto de control de la curva anterior sobre el primer punto de la corriente curva.

XR, YR es sólo el reflejo de P2 sobre P3 así:

XR = 2*X3 - X2 and 
YR = 2*Y3 - Y2 
+0

No hay malentendidos, acabo de llamar a mi primer punto de control para la segunda curva (X4, Y4) y lo llamó (XR, YR) en su lugar. –

+0

Lo siento, quise decir el primer punto como un movimiento para ... editar ahora ... – KeatsKelleher

+1

¡He estado a punto de probar esto, y esto es correcto! ¡Gracias! –

0

se puede tratar el último punto de control de la última curva y el punto final de la última curva (que es el primer punto la nueva curva) como una línea, y el punto de control reflejado debe estar en esa línea a una distancia igual a la distancia desde el último punto de control al último punto final

Cuestiones relacionadas