Lo más recomendable a la hora de diseñar un objeto es describir su geometría en dos pasos aislados:
ESPECIFICACIÓN DE LAS COORDENADAS.
CREACIÓN DE LA FORMA GEOMÉTRICA.
Especificación de las coordenadas:
En este paso se ha de indicar mediante el nodo Coordinate la posición de los puntos que se van a utilizar para construir el objeto. Estos puntos no son visibles en el escenario virtual.
Nodo Coordinate:
Sintaxis:
- Coordinate {
- point [ Eje_x Eje_Y Eje_Z,
- Eje_x Eje_Y Eje_Z,
- Eje_x Eje_Y Eje_Z ] }
Ejemplo:
- Coordinate {point [12.0 11.0 17.1, 20.5 13.8 5.3, 14.0 6.1 22.9 ] }
Creación de la forma geométrica:
Una vez definidos los puntos que forman el esqueleto del objeto, se han de conectar. Existen tres maneras de unir estos puntos, cada una de las cuales está asociada a un nodo diferente:
Nodo PointSet | |
Nodo IndexedLineSet | |
Nodo IndexedFaceSet |
Nodo PointSet:
Representa un conjunto de puntos situados en las coordenadas índicadas dentro del sistema de coordenadas del nodo padre.
Sintaxis:
- PointSet { coord Coordinate { point [ . . . ] } color Color { color [ . . . ] } }
El campo color sirve para definir el color de cada uno de los puntos. Este campo toma como valor un nodo Color, que a su vez contiene un campo de tipocolor de nuevo. Este último campo describe una lista de colores RGB, de forma que el primer color corresponde al primer punto descrito por el nodoCoordinate del campo coord ; el segundo color corresponde al segundo punto y así sucesivamente.
Ejemplo:
- PointSet { coord Coordinate { point [ 12.0 11.0 17.1, #1º punto20.5 13.8 5.3, #2º punto14.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 verde1.0 1.0 0.0 # 3º punto amarillo ] } }
Obsérvese que se ha prescindido del campo appearance del nodo Shape ya que no es necesario, pues los puntos no van a tener la apariencia por defecto, sino la que se determina en el campo color.
Ejemplo:
- #VRML V2.0 utf8Shape { 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 ] } } }