También se pueden crear figuras a partir de la unión de puntos, para esto se utiliza el comando de pointset, el de IndexedLineSet, IndexedFaceSet, ElevationGrid, Extrusion, Coord Cordinate. Cada uno de estos comandos nos ayuda a formar figuras complejas como prismas por ejemplo, entre otras cosas.
Primero empezaremos explicando pointset:
Este nodo nos permite especificar un conjunto de puntos 3D en el sistema de coordenadas locales, con colores asociados a cada letra , pero no tiene control sobre el tamaño de los puntos, es decir, es el mismo tamaño para todo el número de puntos con los que se desea trabajar.
SINTAXIS PARA POINTSET
#VRML V2.0 utf8 #PointSet example Shape { geometry PointSet { coord Coordinate { point [ -1.0 -1.0 0.0, 1.0 1.0 0.0, 0.0 0.0 0.0, ] } color Color { color [ 1.0 0.0 0.0, 0.0 1.0 0.0, 0.0 0.0 1.0, ] } } }
IndexedLineSet
En este nodo existen dos tipos el IndexedLineSet, y IndexedFaceSet,
primero el IndexedLineSet explicaré, este nodo
nos permite dibujar las líneas rectas en el espacio
3D entre los vertices especificados en el campo Coord.
La sintaxis de dicho nodo es:
IndexedLineSet {
de color NULL
coord NULL
ColorIndex []
coordIndex []
}
por ejemplo:
#VRML V2.0 utf8 #IndexedLineSet example Shape { geometry IndexedLineSet { coord Coordinate { point [ -1.0 -1.0 0.0, #vertex 0 1.0 1.0 0.0, #vertex 1 1.0 -1.0 0.0, #vertex 2 ] } color Color { color [ 1.0 0.0 0.0, #red 0.0 1.0 0.0, #green 0.0 0.0 1.0, #blue ] } coordIndex [ #red line 0, 1, -1, #green line 1, 2, -1, #blue line 2, 0, -1 ] colorIndex [ 0, 1, 2 ] } }
IndexedFaceSet
El nodo IndexedFaceSet, este nodo nos permite dibujar los rostros
dentro del perimetro de puntos, dicho nodo representa una forma 3D
formado por la construccion de caras(polígonos)de los vétices que
figuran dentro del campo coord.
Su sintaxis es:
IndexedFaceSet { coord Coordinate { point [. . . ] } coordIndex [ 1, 0, 3, -1,. . . ] }
dicha sintaxis se utilza de la siguiente manera:
#VRML V2.0 utf8 #IndexedFaceSet example: a pyramid Shape { appearance Appearance{ material Material { diffuseColor 1 0 0 #simple red } } geometry IndexedFaceSet { coord Coordinate { point [ # bottom -1.0 -1.0 1.0, #vertex 0 1.0 -1.0 1.0, #vertex 1 1.0 -1.0 -1.0, #vertex 2 -1.0 -1.0 -1.0, #vertex 3 # top 0.0 1.0 0.0 #vertex 4 ] } coordIndex [ #bottom square 0, 3, 2, 1, 0, -1, #side1 0, 1, 4, -1, #side2 1, 2, 4, -1, #side3 2, 3, 4, -1, #side4 3, 0, 4, -1, ] } } El nodo coodinate y coordIndex lo explicaremos mas adelante.
ElevationGrid
Este nodo en VRML nos permite crear rejillas o dicho de otra manera
nos permite crear elevaciones,proporciona una forma compacta de representar
a base de que varia en altura sobre una superficie. El nodo especifica
una rejilla rectangular y la altura del suelo, en cada punto de la rejilla
para poder utilizar el nodo ElevationGrid usamos la siguiente sintaxis:
ElevationGrid { xDimension 3 Donde x, sus puntos se representan de manera horizontal xSpacing 1,0 dependiendo de la dimension que se le en xDimension, es decir, zDimension 2 si xDimension 3 en x deben ser tres puntos de la rejilla zSpacing 1,0 representado graficamente asi: height [
. . . y zDimension son los puntos representados pero de manera horizontal 0,0, -0,5, 0,0, y de igual manera depende del valor k le des, es decir si zDimension=2 0,2, 4,0, 0,0 debes poner dos puntos de hacia abajo, representado graficamente así: ] . } .
quedando finalmente asi:
1.0,0.0,4.5,
5.3,5.7,2.3,
Es importante que después de cada punto se ponga una coma ya que si no no funcionara la rejilla
la sintaxis genral quedara asi:
#VRML V2.0 utf8 #ElevationGrid example: Transform { translation -9 -2.0 -10.0 children [ Shape { appearance Appearance{ material Material { diffuseColor 1 0 0 #simple red } } geometry ElevationGrid { xDimension 9 zDimension 6 xSpacing 2.1 zSpacing 2 height [ 0, 0, 0.2, 0, 0, 0, 0, 0, 0, # row 0 0, 0.8, 0.4, 0.2, -0.2, 0.2, 0.4, 0.2, 0, # row 1 0, 1, 0.6, 0.4, 0.2, 0.4, 0.2, -0.2, 0, # row 2 0, 0.8, 0, 0.4, -0.2, 0.2, -0.4, 0.1, 0, # row 3 0, 0.2, -0.4, -0.2, 0, 0.4, 0.2, 0.4, 0, # row 4 0, 0, 0, 0, 0, 0, 0, 0, 0 # row 5 ] } } ] }
EXTRUSION
Este nodo nos sirve para darle un volumen a nuestra figura a crear es decir mediante este nodo podemos inclusive crear prismas de manera mas rapida
el nodo extrusion es una elevacion, este nodo tiene la capacidad de crear geometría mediante la definición de una sección en 2D
y una columna 3DLos caminos sección transversal puede ser escalado y rotado en cada punto de la columna vertebral del programa.
Debe especificar cada uno de ellos como una serie de vértices que se conectan en el orden.
Por ejemplo para producir una forma de cilinro o de otro tupo con una curva de sección transversal co un nodo de extrusion,tiene
que especificar muchos puntos espaciados juntos para aproximarse a una curva.
Su sintaxis es:
Extrusión { crossSection [ 1,0 0,0,. . . ] la columna vertebral [ 10,0 0,0 0,0,. . . ] }
POr ejemplo:
#VRML V2.0 utf8 #extrusion example Shape { appearance Appearance { material Material { } } geometry Extrusion { crossSection [ 1 0, .71 -.71, 0 -1, -.71 -.71, -1 0, -.71 .71, 0 1, .71 .71, 1 0 ] spine [ -2 0 0, -2 0 -4, 2 0 -4, 2 0 0] scale [ 1 1 , 0.5 0.5 , 0.5 0.5 , 1 1 ] beginCap FALSE endCap FALSE solid FALSE } }
COORD COORDINATE
Este nodo nos permite definir la posición de los puntos que se van a utilizar para construir el objeto,
estos puntos no son vsbles en el mundo virtual.
su sintaxis es:
- Coordinate {
point [
Eje_x Eje_Y Eje_Z,
Eje_x Eje_Y Eje_Z,
...
Eje_x Eje_Y Eje_Z
]
}
- Donde x,y,z son los campos en los que se le asignaran los puntos o las coordenadas, por ejemplo:
- Coordinate {
point [
12.0 11.0 17.1,
20.5 13.8 5.3,
14.0 6.1 22.9
]
}
- Dado ya un ejemplo complejo, es decir, ya con toda la sintaxis que ya conocemos es:
- #VRML V2.0 utf8
#Ejemplo de un grupo de tres puntos con colores
Shape {
geometry PointSet {
coord Coordinate {
point [
12.0 11.0 17.1, 1º punto
20.5 13.8 5.3, 2º punto
14.0 6.1 22.9 3º punto
]
}
color Color {
color [
1.0 0.0 0.0, 1º punto rojo
0.0 1.0 1.0, 2º punto verde
1.0 1.0 0.0 3º punto amarillo
]
}
}
}
- Bueno para concluir, estoa sido nuestro segundo departamental de la matria de VRML(Entornos Virtuales)
- En este tutorial tratamos de demostrar los diferentes temas con los que trabajamos, lo cual nos lleva a ver otras maneras de hacer figuras que pueden o no ser solidos pero esta vez mediante puntos, y entre otros códigos que nos permiten por ejemplo darle color a cada cara de nuestra figura, o ubicar puntos que nos permiten unir linas.
- Claro esta al momento de hacer laws figuras mediante estos nuevos nodos el programa o código se extenderá muxo más debido a que se debe identificar cada acción porque ya la figura no es solo una sino que se forma otros codigos como por ejemplo poinset y points junto con coorde¿inate. Tan extenso puede ser dicho código que puede llegar a abarcar hasta más de 4000 líneas de código.
No hay comentarios:
Publicar un comentario