Triedro de Frênet. Usamos funciones paramétricas y sus derivadas.
Vamos a visualizar el triedro de Frenet (referencia ortonormal asociada a cada punto, donde es tangente a la curva. Los vectores se denominan Tangente, Binormal y Normal) al recorrer una curva. Cuando es una parametrización de la curva, los vectores pueden calcularse como:
- La expresión para el vector es el resultado de normalizar el vector tangente (obtenido al derivar la parametrización de la curva respecto su parámetro).
- Al calcular la segunda derivada, de la parametrización, obtenemos otro vector y, por las propiedades del producto vectorial, al calcular su producto con , tendremos un vector perpendicular a . Para obtener , bastará normalizar el resultado, dividiendo por su módulo.
- Por último, el producto vectorial de estos dos vectores nos proporciona el tercer vector que necesitamos, pues es perpendicular a los otros dos y de módulo 1.
Instrucciones
- Creamos la curva como un Spline de grado 3 que pasa por varios puntos, A, B, C y D del espacio: r=Spline({A, B, C, D}, 3). También situamos un nuevo punto Precorrido, sobre ella.
El parámetro que mide el porcentaje recorrido de la curva por el punto, se mide con la función
- parametro = ParámetroRecorrido(Precorrido)
- Calculamos las derivadas, que usaremos para construir los vectores tangente, normal y binormal.
- r'=Derivada(recorrido) r'' = Derivada(r')
- Calculamos los valores en el punto Precorrido, usando el parámetro correspondiente
- r'_P = r'(parametro) r''_P = r''(parametro)
- Calculamos los correspondientes vectores del triedro. Para que se representen con origen en Precorrido, los introducimos como Vector(Precorrido, Precorido+"vector") Podemos calcular el producto vectorial con el comando ProductoVectorial(...), o directamente con ⊗
- vecT = Vector(Precorrido, Precorrido + r'_P / Longitud(r'_P))
- vecB = Vector(Precorrido, Precorrido + (r'_P ⊗ r''_P) / Longitud(r'_P ⊗ r''_P))
- vecN = Vector(Precorrido, Precorrido + vecB ⊗ vecT)
- Cambiamos el color de cada vector
- Añadimos una variable booleana "animado=true" para controlar que el punto esté animado o no
- Introducimos un texto que indique "Animación". Su guion al hacer click debe ser: Valor(animado,!animado) IniciaAnimación(Precorrido,animado)