SUPERFICIES CUÁDRICAS
Una clase de objetos que se Utiliza frecuentemente es la de las superficies cuádricas, que se describen con ecuaciones de segundo grado (cuádricas). Entre ellas se incluyen las esferas, los elipsoides, los toros, los paraboloides y los hiperboloides. Las superficies cuádricas, particularmente las esferas y los elipsoides, son elementos comunes en las escenas gráficas, y las subrutinas para generar estas superficies están disponibles a menudo en los paquetes gráficos. También, las superficies cuadráticas se pueden producir con representaciones mediante splines racionales.
Esfera
En coordenadas cartesianas, una superficie esférica de radio r centrada en el origen de coordenadas se define
como el conjunto de puntos (x,y, z) que satisface la ecuación:
También podemos describir la superficie esférica de forma paramétrica, utilizando los ángulos de la lati-
lud y la longitud (Figura 8.2):
X = r eos < eos 0 ¡>-7t/2 < (¡> < Ttll
y = r e o s 0sin ft -n<Q<n
z = r sin <p
La representación paramétrica de las Ecuaciones propociona un rango simétrico para los parámetros angulares 0 y <> Como alternativa, podríamos escribir las ecuaciones paramétricas utilizando coordenadas ¡.
esféricas estándar, en las que el ángulo t¡> se especifica como eolatitud (Figura 8.3). Entonces, 0 se define den-
tro del rango 0 < 0 < n y 6 se toma a menudo en el rango 0 < 6 < 2/r. Podríamos también establecer la repre-
sentación utilizando parámetros uy v definidos sobre el rango que varía entre 0 y I, haciendo las sustituciones <f> = k u y 0 = 2k v.
Elipsoide
Una superficie elipsoidal se puede describir como una ampliación de la superficie esférica, en la que el radio en ires direcciones perpendiculares entre sí puede tener valores diferentes. La representación cartesiana de los puntos de la superficie de un elipsoide centrado en el origen es:
Una representación paramélrica de un elipsoide en función del ángulo de la latitud 0 y del ángulo de la longitud 0 d e la Figura 8.2 es:
x = r eos 0 eos ft -7i/2 <<p<7V/2
y = t\ eos 0 sin ft - k<6<k
Z = r. Sin 0
Un objeto con forma de donut se denomina toro. Muy a menudo se describe como la superficie generada al hacer girar un círculo o una elipse alrededor de un eje coplanario que es externo a la cónica.
SUPERCUÁDRICAS
Superelipse
Obtenemos la representación cartesiana de una superelipse a partir de la ecuación de una elipse permitiendo que el exponente de los términos ¿rey sea variable. Un modo de hacer esto es escribir la ecuación cartesiana de la superelipse en la forma: \2/s+V
Superelipsoide
Una representación cartesiana de un superelipsoide se obtiene a partir de la ecuación de un elipsoide incorporando dos parámetros exponenciales:
2/íj/f>\ 2/1,= 1I
Con í| = s = 1. tenemos un elipsoide ordinario. Podemos a continuación escribir la representación parametrica correspondiente al superelipsoide de la
Ecuación.
x = r eos' 0 c o s -nI2<<t><7tt2
y = ñ e o s ' &úx\ 0, -K <0 <K
FUNCIONES OpenGL PARA SUPERFICIES CUÁDRICAS Y SUPERFICIES
CÚBICAS
Funciones para superficies cuádricas de GLUT
(¡eneramos una esfera con GLUT con cualquiera de las dos funciones siguientes:
glutWireSphere (r, nLongitudes, nLatitudes}¡
O
glutSolidSphere (r, nLongitudes, nLatitudes);
Un cono con GLUT se obtiene con:
glutWireCone (rBase, height, nLongitudes, nLatitudes);
o
glutSolidCone (rBase, height, nLongitudes, nLatitudes);
Las visualizaciones alámbricas o con superficie sombreada de un toro con sección recta circular se generan mediante:
glutWireTorus (rCrossSection, rAxial, nConcentrics, nRadialSlicesí;
o
glutSolidTorus (rCrossSection, rAxial, nConcentrics, nRadialSlices);
Función de GLUT para la generación de una tetera con una superficie cúbica
Podemos visualizar la tetera, como una malla de cerca de mil parches de superficies bicúbicas, utíliIizando cualquira de las dos funciones siguientes de GLUT:
glutWireTeapot (size);
0
glutSolidTeapot (size);
Funciones para la generación de superficies cuádricas de GLU
GLUquadricObj *spherel;
Spherel= gluNewQuadric( ) ;
gluQuadricDrawStyle (spherea, GLD_LINE};
gluSphere (spherel, v, nLongitudes, nLatitudes);
Para producir una vista de un cono, un cilindro, o cilindro con tapas, reemplazamos la función g l u S p h e r e por
gluCylinder (quadricName, rBase, rTop, height, nLongitudes, nLatitudes);
Podemos especificar una parte de una corona circular con la siguiente función de GLU.
gluPartialDisk (ringName, rlnner, rOuter, nRadii, nRings, startAngle, sweepAngle);
Cuando hay que aplicar otras condiciones de iluminación y sombreado, utilizamos la constante G L U _ S M O O T H , que genera un vector normal para cada vértice de la superficie.
No hay comentarios:
Publicar un comentario