CURSO DE VRML 2.0
Lic. Mirta Echeverría
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:
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 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
}
}
}
]
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.
Hasta la próxima. Cualquier consulta o comentario [email protected]