En líneas generales, una forma extruida
se obtiene de la siguiente manera:
En el plano XZ (horizontal) se define,
mediante una serie de puntos, un polígono cerrado: la sección
transversal o crossSection.
Esta sección es, por tanto, plana.
Mediante otra serie de puntos, se define
un recorrido en el espacio tridimensional: la espina dorsal o spine.
El objeto extruido se obtiene desplazando la
sección transversal a lo largo de la espina dorsal. Durante este
desplazamiento, la sección transversal puede permanecer invariable, o bien se
pueden ir modificando tanto su escala (tamaño), como su orientación.
Se pueden observar los campos:
- crossSection, cuyo argumento es una serie de puntos que definen la sección transversal. Nótese que estos puntos están definidos por dos coordenadas, y no por tres, que es lo habitual. Veremos a continuación el motivo de ésto.
- spine, cuyo argumento es otra serie de puntos que definen la espina dorsal del objeto extruido. Cada uno de estos puntos está definido por tres coordenadas, como no podía ser menos, puesto que la espina dorsal es un recorrido en el espacio tridimensional.
- solid, tiene dos opciones: TRUE (la opción por defecto) con la que se ven sólo un lado de las caras. FALSE: se verán ambos lados.
sintaxis
geometry Extrusion {
crossSection [x y,]
spine[ x ,y ,z ]
solid FALSE
}
Ejemplos:
#VRML V2.0 utf8
Transform{
translation -3 -1 -30
scale .5 .5 .5
children[
Shape{
appearance Appearance {
material Material {
diffuseColor 0.5 0.3 1
}
}
geometry Extrusion {
crossSection [
4 2,
-4 8,
-3 -1,
7 -4,
1 1
]
spine [
10 0 0,
7.07 1 7.07,
0 2 10,
-7.07 3 7.07,
0 6 -10,
7.07 7 -7.07,
10 8 0,
7.07 9 7.07,
0 10 10,
-7.07 11 7.07,
-10 12 0,
-7.07 13 -7.07,
0 14 -10,
7.07 15 -7.07,
10 16 0
]
solid FALSE
}
}
]
}
Transform{
translation -3 -1 -30
scale .5 .5 .5
children[
Shape{
appearance Appearance {
material Material {
diffuseColor 0.5 0.3 1
}
}
geometry Extrusion {
crossSection [
4 2,
-4 8,
-3 -1,
7 -4,
1 1
]
spine [
10 0 0,
7.07 1 7.07,
0 2 10,
-7.07 3 7.07,
0 6 -10,
7.07 7 -7.07,
10 8 0,
7.07 9 7.07,
0 10 10,
-7.07 11 7.07,
-10 12 0,
-7.07 13 -7.07,
0 14 -10,
7.07 15 -7.07,
10 16 0
]
solid FALSE
}
}
]
}
#VRML V2.0 utf8
Transform{
translation -3 -1 -30
scale .5 .5 .5
children[
Shape{
appearance Appearance {
material Material {}
}
geometry Extrusion {
crossSection [
1 1,
-1 1,
-1 -1,
1 -1,
1 1
]
spine [
10 0 0,
7.07 1 7.07,
0 2 10,
-7.07 3 7.07,
0 6 -10,
7.07 7 -7.07,
10 8 0,
7.07 9 7.07,
0 10 10,
-7.07 11 7.07,
-10 12 0,
-7.07 13 -7.07,
0 14 -10,
7.07 15 -7.07,
10 16 0
]
solid FALSE
}
}
]
}
chingon!
ResponderEliminar