39
UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Embed Size (px)

Citation preview

Page 1: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

UTP

COMPUTACION GRAFICA

ING. JESSICA DELGADO FUENTES

Page 2: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Formas complejas. Extrusiones

En la sesion anterior vimos el nodo IndexedFaceSet, con el que se pueden obtener superficies irregulares (caras).

Aunque este nodo es una herramienta potente, en ocasiones no es la más adecuada ya que es preciso definir cada una de las caras. Para ciertas formas, esto obligaría a definir un número enorme de puntos y caras (imagínese definir de esta manera una superficie esférica).

En esta sesio vamos a ver el nodo Extrusion que permite definir formas muy complejas utilizando muy pocos

Page 3: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

CONCEPTO BÁSICO DE LA EXTRUSIÓN

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.

Page 4: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Ejemplos de extrusiones

Page 5: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Estructura general del nodo Extrusion

La estructura básica de este nodo es la siguiente: Extrusion { crossSection [ 1 0, 0 6.5, ....... ] spine [ 10 0 3, 15 1 5, ............ ] solid FALSE }

Page 6: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Fields Principales

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.

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.

Page 7: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Ejemplo de extrusión:

un cuboVeamos a continuación con más detalle

cómo se define la sección transversal. Como se ha dicho antes, se encuentra en el plano XZ, es decir, en el plano horizontal formado por los ejes coordenados X y Z.

Page 8: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

A la derecha se puede ver la representacion de los ejes coordenados.

La sección transversal es una superficie plana, definida en el el plano XZ. Por tanto, se van a utilizar sólo dos coordenas (x,z).

ejemplo muy sencillo de extrusión, para comprender este concepto: un cubo. ( existe el nodo Box para conseguirlo directamente)

Page 9: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

La sección transversal de un cubo es un cuadrado definido en el plano XZ.

A la derecha se puede ver la sección transversal del cubo, definida por sus cuatro vértices.

Para definir la sección transversal, se debe señalar un polígono cerrado, es decir, comenzando desde un vértice cualquiera (p. ej. 10,10), y siguiendo el sentido de las agujas del reloj, el siguiente será (-10,10), luego (-10,-10), a continuación (10,-10) y finalmente (10,10) de nuevo, con lo que el polígono se ha cerrado.

Page 10: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

crossSection [ 10 10, -10 10, -10 -10, 10 -10, 10 10 ]

Page 11: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Ahora falta por definir la espina dorsal. La espina dorsal define el recorrido que la sección transversal deberá efectuar para crear le forma extruida.

Vamos a hacer que la sección transversal comience en el punto (0,-10,0) y se mueva hasta el punto (0,10,0).

En las siguientes figuras se muestra la espina dorsal para el cubo y el camino recorrido por la sección transversal a lo largo de ella (en rojo):

Page 12: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

El campo spine queda de la siguiente manera:

spine [ 0 -10 0, 0 10 0 ]

Page 13: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Inclusion del nodo Extrusion en el nodo Shape

Como se ha dicho repetida veces, para que un nodo que define una forma (como es el caso del nodo Extrusion) sea visible, debe incluirse dentro del nodo Shape.

Por tanto, el documento VRML de este ejemplo quedará de esta forma:

Page 14: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

EJEMPLO

Page 15: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

A la derecha puede verse el resultado. Se han añadido unos ejes coordenados y modificado el punto de vista inicial)

Page 16: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Aberturas en la superficie extruida En el ejemplo del cubo visto anteriormente, todas las caras

eran visibles. Pero, si se desea, se puede hacer que no existan algunas de ellas, es decir, que haya aberturas en la superficie extruida.

Existen dos campos que determinan si la forma extruida está abierta o cerrada en los extremos:

beginCap: si se establece como FALSE, no existirá la sección transversal inicial (en el ejemplo del cubo, la cara inferior).

endCap: si se establece como FALSE, no existirá la sección transversal final (en el ejemplo del cubo, la cara superior).

Añadiendo estos dos campos al nodo Extrusion, en el ejemplo anterior:

Page 17: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

beginCap FALSE endCap FALSE dará el resultado que se ve a la derecha

Page 18: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Otra posibilidad es la de dejar deliberadamente sin cerrar el polígono que determina la superficie transversal.

Así, en el ejemplo de la sección transversal del cubo, si se comienza por el vértice inferior izquierdo (-10,10), y siguiendo según el sentido de las agujas del reloj:

crossSection [ -10 10, -10 -10, 10 -10, 10 10 ]

Page 19: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

queda sin cerrar el polígono, con lo que el cubo extruido carece de la cara frontal, como se puede ver en la imagen de la derecha (pulsarla para cargar el escenario).

Page 20: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Complicando la espina dorsal En los ejemplos vistos

anteriormente, la espina dorsal siempre es perpendicular a la sección transversal y además justo en su centro. Pero esto no tiene por qué ser así necesariamente.

La espina dorsal puede estar situada en cualquier sitio, formar una recta inclinada, estar formada por más de dos puntos o tener cualquier forma espacial que se desee. Veamos una espina dorsal que sea una recta inclinada con respecto a la sección transversal (ver imagen a la derecha).

La espina dorsal ha sido representada en rojo y la sección transversal en verde.

Page 21: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

A la derecha puede verse el resultado.

(Y éste es el texto del fichero (sin los ejes coordenados).

Page 22: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Ejemplo

Page 23: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Y ahora veamos un ejemplo de espina dorsal formada por tres puntos:

Page 24: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Superficies de revolución

Si la espina dorsal es un círculo, entonces el cuerpo engendrado es una superficie de revolución. Veamos un ejemplo: un toro definido por 8 puntos.

A la derecha puede verse la imagen que representa la sección transversal (en verde) y que está situada, como debe ser, en plano horizontal XZ. Esta sección transversal es un círculo de radio 5 y está representada por 8 puntos.

También está representada (en blanco) una espina dorsal formada por otros ocho puntos que forman un círculo de radio 10, y que también está situada en el plano XZ, porque así lo hemos querido.

Page 25: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

crossSection [ 5 0, 3.53 3.53, 0 5, -3.53 3.53, -5 0, -3.53 -3.53, 0 -5, 3.53 -3.53, 5 0 ]

Page 26: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Recuérdese que en el campo crossSection los puntos se expresan con dos corrdenadas (x,z), y que además hay que repetir al final el primer punto, para cerrar la sección transversal.

Page 27: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

El campo spine es el siguiente:

spine [ 10 0 0, 7.07 0 7.07, 0 0 10, -7.07 0 7.07, -10 0 0, -7.07 0 -7.07, 0 0 -10, 7.07 0 -7.07, 10 0 0 ]

Page 28: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

En este caso, los puntos vienen expresados por tres coordenadas (x,y,z). Y también se repite el último para cerrar el toro

A la derecha puede verse el resultado (pulsar la imagen para cargar el escenario).

Es evidente que los ocho puntos que se han utilizado para definir los dos círculos (el de la sección transversal y el de la espina dorsal) no son suficientes, pues más que círculos son octógonos. Harían falta muchos más puntos para conseguir un toro como el representado al principio.

Page 29: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Variación de la escala de la sección transversal

Hasta ahora, en todos los casos vistos, la sección transversal parmanecía inalterable en su forma y tamaño a lo largo de la espina dorsal.

Existe el campo scale que permite modificar la escala de la sección transversal en cada uno de los puntos de la espina dorsal.

Así, en el primer ejemplo del cubo, la espina dorsal estaba constituída por dos puntos. Podemos hacer que en el segundo punto, la escala de la sección transversal se reduzca a la mitad, con lo que la figura resultante sería un tronco de prisma. Basta con añadir el campo scale de la siguiente forma:

Page 30: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

scale [ 1 1, 0.5 0.5 ] El argumento del campo scale es un par de

parámetros (que varían de 0 a 1) y que representan la variación de las coordenadas x ó z. Hay que especificarlo por cada punto que hay en la espina dorsal.

Page 31: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

En el ejemplo anterior, quiere decir que en el primer punto de la espina dorsal, queremos que permanezcan inalterables las medidas de las x (factor 1), así como de las z (factor 1). En el segundo punto de la espina dorsal, en cambio, queremos que las x se reduzcan a la mitad (factor 0.5), así como las z (factor 0.5). Se podía haber modificado sólo uno, pasando en vez de a un cuadrado menor, a un rectángulo.

A la derecha puede verse el resultado (pulsar para cargar el escenario).

Page 32: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Variación de la orientación de la sección transversal

Hasta ahora, en todos los casos vistos se ha considerado que la sección transversal se traslada paralelamente a sí misma (variando o no su tamaño).

Existe el campo orientation que permite girar la sección transversal en cada punto de la espina dorsal un ángulo determinado.

Veamos un ejemplo: en el cubo vamos a hacer que la sección transversal gire 45º en el segundo punto de la espina dorsal, con lo que se obtendrá un cubo "retorcido". Para conseguirlo, vamos a añadir el campo orientation de la siguiente manera:

orientation [ 0 1 0 0, 0 1 0 0.875 ]

Page 33: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

El argumento del campo orientation está formado por un grupo de 4 parámetros. Los tres primeros indican el eje alrededor del cual se va a girar la sección transversal. Y el cuarto parámetro indica el ángulo girado, expresado en radianes (esto ya se vió para el campo rotation ). Esto hay que especificarlo por cada punto de la espina dorsal.

En el ejemplo anterior, en el primer punto de la espina dorsal expresamos que la rotación alrededor del eje Y (parámetros 0 1 0) sea nula (cuarto parámetro 0). En cambio, en el segundo punto de la espina dorsal, queremos que la rotación alrededor del eje Y (parámetros 0 1 0) sea de 45º (cuarto parámetro, que es 3.14/4=0.875)

Puede verse el resultado en la figura siguiente a la izquierda. A la derecha puede verse el resultado de combinar ambos campos a la vez (scale y orientation). Pulsarlos para cargar los escenarios:

Page 34: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES
Page 35: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Ejercicio práctico

Como ejercicio práctico se propone crear una espiral de sección transversal cuadrada.

Las dimensiones de la sección transversal deben ser 2x2. Por tanto, los cuatro puntos que definen a la sección transversal en el plano XZ serán (1,1), (-1,1), (-1,-1) y (1,-1).

La espina dorsal va a estar definida por 17 puntos.

Page 36: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

A la derecha puede verse el resultado.

Page 37: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

#VRML V2.0 utf8

Transform { children Shape{ appearance Appearance

{ material Material {} } geometry Extrusion{ crossSection [ -1 -1, -1

1, 1 1, 1 -1, -1 -1] spine [0 -1 0 , 0 1 0 ] orientation[0 1 0 0, 0 1 0 3.14] } } }

Page 38: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

Transform { children Shape { appearance

Appearance {materialMaterial {}}

geometry Extrusion {

crossSection [ -1 -1, -1 1, 1 1, 1 -1, -1 -1]

spine [0 -1 0 , 0 1 0 ] scale [1 1, 0 0] } } }

Page 39: UTP COMPUTACION GRAFICA ING. JESSICA DELGADO FUENTES

#VRML V2.0 utf8  Transform { children Shape{ appearance

Appearance { material Material {}}

geometry Extrusion{ crossSection [ -1 -1, -

1 1, 1 1, 1 -1, -1 -1] spine [0 -1 0 , 0 1 0 ] orientation[0 1 0 0, 0 1 0

3.14] } } }