Tengo dos puntos finales y dos puntos de control. Estoy utilizando estos puntos y este enlace . he encontrado un punto en la curva de Bézier. Ahora me gustaría encontrar el ángulo en este punto de la curva de Bézier. ¿Hay alguna fórmula?
Respuesta
¿Demasiados anuncios?Una curva cúbica de Bézier tiene una ecuación de la forma $$ \mathbf P(t) = (1-t)^3\mathbf P_0 + 3t(1-t)^2\mathbf P_1 +3t^2(1-t)\mathbf P_2 + t^3\mathbf P_3 $$ Cuando dices que quieres el "ángulo" de la curva, supongo que te refieres al ángulo entre la tangente de la curva y el $x$ -eje. Si esto es lo que quieres, aquí tienes cómo conseguirlo:
Si se diferencia la ecuación de la curva, se obtiene $$ \mathbf P'(t) = (1-t)^2(\mathbf P_1 - \mathbf P_0) + 2t(1-t)(\mathbf P_2 - \mathbf P_1) + t^2(\mathbf P_3 - \mathbf P_2) $$ Como probablemente sepa, $\mathbf P'(t)$ es un vector que está en la dirección de la línea tangente de la curva en el valor del parámetro $t$ . Por lo tanto, sólo hay que encontrar el ángulo entre este vector y el $x$ -eje. Si el vector es $(u,v)$ entonces el ángulo es $\arctan(v/u)$ . Si estás escribiendo código, calcula $\text{atan2}(v,u)$ .