El nodo ElevationGrid (en inglés: rejilla de elevaciones) determina una rejlla de puntos,
es decir, una cuadrícula de puntos de separación uniforme en el plano
horizontal XZ, a los que se atribuyen distintas cotas de altura. Se
genererá una superficie irregular uniendo dichas cotas.
Sintaxis:
- ElevationGrid{
xDimension número_de_columnas(Eje_X)
xSpacing valor_real
zDimension número_de_filas(Eje_Z)
zSpacing valor_real
height [altura1, altura2,...,altura(numcolum x numfilas)]
color Color[...]
colorPerVertext
}
Los campos xDimension
y zDimension especifican el número de puntos de la cuadrícula
en las direcciones X y Z, definiendo una superficie que contiene un número
de rectángulos igual a (xDimension-1)*(zDimension-1).
Los campos xSpacing
y zSpacing determinan la distancia entre los puntos de la cuadrícula
en el eje X y en el eje Z respectivamente.
El campo height
consiste en una ordenación de valores escalares que representan
la altura de cada vértice sobre la cuadrícula. Los valores
se almacenan de modo que la fila 0 es la primera, la fila 1 la segunda,
etc. Dentro de cada fila, los valores de altura se almacenan de modo que
la columna 0 es la primera, la 1 la segunda, etc.
El campo colorPerVertex
indica como se han de aplicar los colores
| colorPerVertex | Acción |
| FALSE | Los colores se aplican sobre las cuadrículas de la rejilla. Se han de definir en el nodo Colors al menos ((xDimension-1)*(zDimension-1)) colores. |
| TRUE | Los colores se aplican sobre los vértices de la rejilla.Se han de definir en el nodo Colors al menos (xDimension*zDimension) colores. |
Determinando una cara visible
Por defecto, la cara visible es la perpendicular a la parte positiva de los ejes coordenados. En el ejemplo anterior, la cara es perpendicular a la parte positiva del eje Z.
Pero puede haber ocasiones que nos interese que sea visible la otra cara. Para determinar una cosa o la otra, el nodo ElevationGrid puede tener el campo ccw (abreviatura de counterclockwise: contrario a la agujas del reloj). Hay dos posibilidades:
- TRUE Es la opción por defecto, por tanto no es obligatoria ponerlo. La cara visible es la perpendicular a la parte positiva de los ejes coordenados.
- FALSE En este caso, la cara visible es la opuesta a la parte positiva de los ejes coordenados
Si en el ejemplo anterior se añade el campo ccw FALSE. Para poder ver la superficie hay que girar 180º el escenario.
Determinando ambas caras visibles
Se puede hacer que ambas caras sean visibles simultáneamente. Para ello el nodo ElevationGrid puede tener el campo solid, que tiene dos posibilidades:
- solid TRUE Es la opción por defecto: sólo una cara es visible (la determinada por el campo ccw), y por tanto no es obligatorio ponerlo.
- solid FALSE En este caso, ambas caras son visibles simultáneamente.
Transform{
translation -50 -1 1
children[
Shape{
appearance Appearance{ material Material{ diffuseColor 0.36 0.2 0.09 } }
geometry ElevationGrid {
xDimension 18
zDimension 10
xSpacing 1.0
zSpacing 1.0
solid FALSE
height [ 0.0, 0.0, 0.5, 1.0, 0.5, 0.0, 0.0, 0.0, 0.0,0.5,
0.0, 0.0, 0.0, 0.0, 2.5, 0.5, 0.0, 0.0, 0.0,0.5,
0.0, 0.0, 0.5, 0.5, 3.0, 1.0, 0.5, 0.0, 1.0,0.5,
0.0, 0.0, 0.7, 2.0, 10.5, 5.5, 2.0, 1.5, 0.5,0.5,
1.0, 2.5, 3.0, 6.5, 5.5, 3.5, 3.0, 1.0, 0.0,0.5,
0.5, 8.0, 5.0, 7.5, 6.5, 9.0, 2.0, 0.5, 0.0,0.5,
0.0, 4.0, 0.5, 1.5, 5.0, 2.0, 3.0, 1.5, 0.0,0.5,
0.0, 5.0, 1.0, 0.0, 0.0, 0.0, 2.0, 1.5, 0.5,0.5,
0.0, 5.0, 1.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0,0.5,
0.0, 5.0, 2.5, 1.0, 0.5, 0.0, 0.0, 0.0, 0.0,0.5,
0.0, 05.0, 4.0, 0.0, 2.5, 0.5, 0.0, 0.0, 0.0,0.5,
0.0, 7.0, 0.5, 0.5, 3.0, 1.0, 0.5, 0.0, 1.0,0.5,
0.0, 0.0, 6.7, 2.0, 10.5, 5.5, 2.0, 1.5, 0.5,0.5,
1.0, 2.5, 3.0, 6.5, 5.5, 3.5, 3.0, 1.0, 0.0,0.5,
0.5, 8.0, 5.0, 7.5, 6.5, 9.0, 2.0, 0.5, 0.0,0.5,
0.0, 7.0, 5.5, 1.5, 5.0, 2.0, 3.0, 1.5, 0.0,0.5,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.5, 0.5,0.5,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0,0.5,
]
}
}
]
}
.
No hay comentarios:
Publicar un comentario