Vamos a visualizar el triedro de Frenet (referencia ortonormal [math]\big\{\vec{T},\vec{B},\vec{N}\}[/math] asociada a cada punto, donde [math]\big\vec{T}[/math] es tangente a la curva. Los vectores se denominan Tangente, Binormal y Normal) al recorrer una curva. Cuando [math]\big{r(t)}[/math] es una parametrización de la curva, los vectores pueden calcularse como:[br][center][math]\Big\begin{array}{rc}\vec{T}=&\frac{r'(t)}{||r'(t)||}[br]\\[br]\vec{B}=&\frac{r'(t)\wedge r''(t)}{||r'(t)\wedge r''(t)||}[br]\\[br]\vec{N}=&\vec{B}(t)\wedge \vec{T}(t)[br]\end{array}[/math][/center][list][*]La expresión para el vector [math]\vec T[/math] es el resultado de normalizar el vector tangente (obtenido al derivar la parametrización de la curva respecto su parámetro).[br][/*][*]Al calcular la segunda derivada, [math]r''(t)[/math] de la parametrización, obtenemos otro vector y, por las propiedades del producto vectorial, al calcular su producto con [math]r'(t)[/math], tendremos un vector perpendicular a [math]\vec{T}[/math].[br]Para obtener [math]\vec B[/math], 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.[/*][/list](*) Cuando la parametrización es por la longitud de arco "parametrización natural", estos cálculos pueden simplificarse.
[list=1][*]Creamos la curva como un Spline de grado 3 que pasa por varios puntos, A, B, C y D del espacio: [b]r=Spline({A, B, C, D}, 3)[/b]. También situamos un nuevo punto [b]Precorrido[/b], sobre ella.[br]El parámetro que mide el porcentaje recorrido de la curva por el punto, se mide con la función [list][*][b]parametro = ParámetroRecorrido(Precorrido)[/b][/*][/list][/*][*]Calculamos las [b][color=#ff7700]derivadas[/color][/b], que usaremos para construir los vectores tangente, normal y binormal.[list][*][b]r'=Derivada(recorrido) r'' = Derivada(r')[/b][/*][/list][/*][*]Calculamos los valores en el punto Precorrido, usando el parámetro correspondiente[list][*][b]r'_P = r'(parametro) r''_P = r''(parametro)[/b][/*][/list][/*][*]Calculamos los correspondientes vectores del triedro. Para que se representen con origen en Precorrido, los introducimos como Vector(Precorrido, Precorido+"vector")[br]Podemos calcular el producto vectorial con el comando ProductoVectorial(...), o directamente con ⊗[/*][list][*][b]vecT = Vector([/b]Precorrido, Precorrido + [b]r'_P / Longitud(r'_P))[br][/b][/*][*][b]vecB = Vector([/b]Precorrido, Precorrido + [b](r'_P ⊗ r''_P) / Longitud(r'_P ⊗ r''_P))[/b][/*][*][b]vecN = Vector([/b]Precorrido, Precorrido + [b]vecB ⊗ vecT)[/b][br][/*][/list][*]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:[br][b]Valor(animado,!animado)[br]IniciaAnimación(Precorrido,animado)[/b][br][/*][/list]