The only blog not featuring an ipod.

sobre VRML

Esto de los blogs esta lleno de buenos propositos, asi que yo enunciare el mio:
*Hacer todos los dias algo interesante (y postearlo en el blog)

Una vez que pueda cumplir eso vere que otro proposito cumplir.
Comencemos

Haciendo Curvas parametricas en VRML

Bueno, estoy dentro de un proyecto que apenas empieza de visualizacion de entes matematicos en realidad virtual inmersiva. La idea es aprovechar la sala
Ixtli de la UNAM para ilustrar conceptos matematicos. De hecho el plan de trabajo no esta siquiera maduro, por lo pronto empezaremos por geometria diferencial (que parece que es un tema que a todos apasiona cuando lo ven) y ya despues veremos que mas hacer. Hoy mientras comia invente una tecnica muy poco sofisticada (chaca, en esta parte del mundo) para hacer un archivo VRML que muestre una curva parametrica... para ello hacemos uso de dos poderosas herramientas: MSExcel (o cualquier hoja de calculo capaz de guardar como CSV) y Wordpad (o cualquier editor de texto Unicode-friendly). Nada mejor que un ejemplo. El siguiente es un bonito nudo parametrizado como funcion de [0,1] a R3.

f(t)=(X(t),Y(t),Z(t))= -10*cos(t*2*Pi) - 2*cos(5*t*2*Pi) + 15*sin(2*t*2*Pi), -15*cos(2*t*2*Pi) + 10*sin(t*2*Pi) - 2*sin(5*t*2*Pi), 10*cos(3*t*2*Pi)

vamos a graficarlo con 100 puntos. Es un buen numero, primero por ser potencia de 10, pero ademas porque esta dentro de lo que una PC de escritorio (una promedio, medio giga de ram, unos 1200 Mhz, tarjeta 3D de 64MBs) usando Cortona (plugin de VRML para IE) bajo OpenGL puede rotar, girar y demas sin que empieze a salir humo. El procedimiento es este:
Tomamos una hoja de excel.

  • en la columna A, ponemos 0 .01 .02 .03 .... .99 1
    • [Esto es facil de hacer, poniendo 0 en A1, llendo a A2 y poniendo =A1+.01 y arrastrando la formula hasta el renglon 101.
  • En la columna B ponemos =-10*cos(A1*2*Pi()) - 2*cos(5*A1*2*Pi()) + 15*seno(2*A1*2*Pi()) y arrastramos la formula hasta el renglon 101
    • Esto es la formula de la coordenada X converita a notacion de Excel, que, cabe mencionar, cambia segun cada version y cada idioma (lo cual es una estupidez)
Haciendo lo mismo con la coordenada Y y Z tenemos ya 4 columnas, una con los 100 valores de t entre 0 y 1 y las otras con los corresponiendtes valores de X,Y,Z
Hay que seleciconar las ultimas 3 columnas, y ponerles a todas un formato de celda tipo numerico, con 6 digitos decimales.
Copiamos las ultimas 3 columnas a una nueva hoja, asegurandonos de pegar (con pegado especial) solo los valores.
Exportemos esta hoja a un archivo delimitado por comas (CSV) lo cual se puede hacer desde el menu guardar como de excel. Este texto delimitado por comas y en este formato es justamente lo que VRML espera.
Debemos hacer ahora una lista de numeros del 1 al 101, en un mismo renglon y delimitados por comas, esto se puede hacer tambien en excel.
ya que tenemos todo esto lo podemos juntar, y queda algo hermoso:

un nudo pueden abrirlo con IE (asegurense de tener un plugin vrml) o bajar el archivo y abrirlo con wordpad y ver como hay que acomodar nuestros torrentes de numeros.

Pronto vere como paseear una camara por ese nudo, no parece ser muy dificil, lo interesate es como especificarle hacia donde votear (debe hacerlo en la direccion del vector tangente) y donde estan sus pies (+/-vector binormal). esto dara una ilusion de ir montado en la curva, y de irla recorriendo justo a la velocidad en que esta crece, y siendo sensible a la torcion y curvatura :) Todo parece ir bien.. mas tarde, en cuanto lo logre, posteo como hacer el recorrido de la camara. :)


Lo siento si este blog se vuelve de pronto demasiado matematico.. pero no tengo otra vida :(
alguna dia tendre aventuras que contar, mientras tanto desempolven los libros de calculo =D les anticipo que viene una tarea de ecuaciones diferenciales.

have a better one.





No comments:




Alguien me habló todos los días de mi vida al oido, despacio, lentamente. Me dijo: ¡vive, vive, vive! Era la muerte. (JS)