CURSO DE VRML 2.0

 Lic. Mirta Echeverría

[email protected]

Para La Web del Programador

 

Entrega Nº 7:

El Nodo Transform

 

Rotación:

Como vimos cuando usamos el Nodo Transform, todos los objetos son creados por defecto en el centro del escenario de realidad virtual. Y vimos que para modificar esto con el Nodo Transform usamos las coordenadas x, y, z, para determinarle al objeto una nueva posición. Este nuevo sistema de coordenadas puede también sufrir transformaciones como ser trasladado a un punto determinado, ser girado un determinado ángulo y puede tener una escala o sea un tamaño relativo.

Transform {

translation ...

rotation...

scale...

children []

}

Como sabemos el campo children a grupa a los objetos afectados a los cambios.

Traslación (Translation):

Nosotros veíamos que si le dábamos un valor x de 20, y de 0, z de 0, entonces la figura se traslada sobre la coordenada x 20 metros a la derecha. Si el valor es negativo se traslada 20 metros a la izquierda. Y esto evitaba que se nos superpongan las figuras. Ahora veremos otra variación que es el campo rotation.

translation 20 0 0

Rotación o Rotation:

rotation 1 0 0 1.57

Aquí vemos cuatro valores, los tres primeros se corresponden a las tres coordenadas y pueden tener el valor 0 ó 1 y representan la rotación alrededor de cada eje en el orden x, y, z.

Es decir:

    • Rotación sobre el eje X = 1 0 0
    • Rotación sobre el eje Y = 0 1 0
    • Rotación sobre el eje Z = 0 0 1

La cuarta cifra representa el ángulo girado, pero expresado en radianes. Para calcular la correspondencia entre grados y radianes, hay que tener en cuenta que 180º equivalen al número pi en radianes, es decir 3.14 radianes. Por tanto, 90º sería la mitad de 3.14 o sea 1.57 radianes. Para facilitarles las cosas les incluyo un Script que permite hacer el cálculo en forma automática, que nos facilitó nuestro profesor Sandy Ressler, un genio en VRML.

La siguiente figura ilustra un giro de 90º alrededor del eje x lo que hace que el trompo se vea desde arriba.

 

Ejercicio Nº 18:

 #VRML V2.0 utf8

Transform {

children [

Shape {

appearance Appearance {

material Material {

diffuseColor 1 0 0

}

}

geometry Cone {}

}

Shape {

appearance Appearance {

material Material {

diffuseColor 0 0 1

}

}

geometry Cylinder {

radius 0.1

height 5

}

}

Shape {

appearance Appearance {

material Material {

diffuseColor 1 0 0

}

}

geometry Sphere {radius 0.8 }

}

]

rotation 1 0 0 1.57 # 90º

}

Variación de la Scala:

Tansform {

Scale ...

Children []

}

Los valores del campo escala o scale representan las variaciones de las dimensiones del objeto con respecto a los ejes x, y, z. En el siguiente ejemplo vemos la figura anterior pero ahora deformada ya que se volvió terriblemente longilínea.

 

Ejercicio Nº 19:

 #VRML V2.0 utf8

Transform {

scale 0.5 4 0.5

children [

Shape {

appearance Appearance {

material Material {

diffuseColor 1 0 0

}

}

geometry Cone {}

}

Shape {

appearance Appearance {

material Material {

diffuseColor 0 0 1

}

}

geometry Cylinder {

radius 0.1

height 5

}

}

Shape {

appearance Appearance {

material Material {

diffuseColor 1 0 0

}

}

geometry Sphere {radius 0.8 }

}

]

}

 

Los ejercicios de esta entrega los pueden bajar de Ejercicios7.

Entrega 1 - Entrega 2 - Entrega 3 - Entrega 4 - Entrega 5 - Entrega 6 - Entrega 7 - Entrega 8 - Entrega 9 - Entrega 10

Hasta la próxima. Cualquier consulta o comentario [email protected]

www.geocities.com/SiliconValley/Garage/6472