• Familias 3D

    Los objetos gráficos 3D, al igual que los obtenidos en 2D, pueden ser tratados como familias. Esta opción permite repetir un gráfico varias veces como lo muestra la siguiente imagen.

    familia1

    Para lograr esta repetición de objetos gráficos, debemos activar el selector familia y configurar los siguientes atributos del objeto:

    • Parámetro. Variable con la que está parametrizada la familia de objetos gráficos 3D. Debe ser una sola palabra, de preferencia corta, por defecto es s. Esta variable determina, de acuerdo al intervalo, uno o varios atributos de los objetos a dibujar. El programa dibujará los gráficos con los valores del parámetro recorriendo el intervalo especificado en el número de pasos elegido.
    • Intervalo. Determina el recorrido de la variable. Debe contener dos expresiones reales entre corchetes y separadas por una coma [Li, Lf], el intervalo por defecto es [0,1].
    • Pasos. Número de subintervalos en los que se subdivide uniformemente el intervalo del parámetro para definir los elementos de la familia.

    En el ejemplo mostrado en la imagen anterior, la variable s determina la posición en z de la esfera, este parámetro recorre el intervalo definido entre 1 y 3. Sí nuestro deseo es que se dibujen tres esferas verticalmente, el números de pasos debe ser 2, puesto que entre s = 1 y s = 2 hay un paso, y entre s = 2 y s = 3 hay un segundo paso. En general, el número de elementos gráficos dibujados es igual a pasos + 1. En otras palabras, pasos es el número de subintervalos iguales en que se divide el intervalo.

    Volviendo al ejemplo, el atributo posini igual a (0, 0, a*s), es el que permite que las esferas se dibujen una tras otra verticalmente. Si el valor de la variable a es 2 y s varía en el intervalo [1, 3], entonces se dibujarán tres esferas de diámetro 2 en las posiciones (0, 0, 2), (0, 0, 4) y (0, 0, 6).

    Un segundo ejemplo, con a también igual a dos, se muestra en la siguiente imagen.

    familia2

    En este caso el número de objetos es cuatro, usando un posini igual a (s*(a/2+0.2), 0, 3); es decir, son cuatro paralelepípedos dibujados en el eje x, separados en un valor de 0.2. En este caso, la variable s determina la posición en x del paralelepípedo.

     

    Un tercer ejemplo es una familia de cubos. Aquí es muy importante comprender el atributo ancho del cubo, puesto que no se comporta como el ancho de un paralelepípedo, Descartes lo define como la diagonal del cubo; por lo tanto, el lado del cubo sería: L = a*sqrt(3)/3. Por ello, el posini definido para dibujar los cinco cubos es (0, s*L, 3), variando la posición en el eje y de acuerdo a la variable L y no con respecto a la variable a.

    familia3

    Observa la siguiente escena con los tres ejemplos anteriores, además de un cuarto ejemplo que se deja para tu análisis. Cada ejemplo muestra los atributos más importantes del objeto gráfico dibujado.

    El uso de familias 3D, nos permite construir escenas más elaboradas, pero con instrucciones simples, como la que se muestra a continuación:

    (Puede descargar esta escena y la anterior desde este enlace)
  • Otras figuras 3D

    Descartes tiene algunos gráficos o figuras 3D que pueden construirse usando los otros objetos cartesianos, pero que se incluyen entre los gráficos del sistema por comodidad. En general estos gráficos siguen la misma tónica, dependen de algunos de los parámetros ancho, largo, alto, Nu y Nv y su expresión es sólo un identificador para la edición. He aquí la lista de estos gráficos con una escena en la que se puede ver cada uno de ellos:

    Cubo

    Tetraedro

    Octaedro

    Dodecaedro

    Icosaedro

     

    Esfera

    Elipsoide

    Cono

     

    Cilindro

    (Pueden descargarse las escenas anteriores desde este enlace)

  • Texto 3D

    Éste es el panel de configuración de un texto.

    panel_texto_3d

    expresión

    Es un campo de texto. Su contenido debe tener la forma: (X,Y) donde X e Y son expresiones numéricas que determinan la posición del texto en píxeles medidos de izquierda a derecha y de arriba abajo con respecto al vértice superior izquierdo de la ventana del espacio.

    texto

    Etiqueta que contiene el texto a representar. Los textos pueden tener varias líneas y además pueden incluir valores numéricos variables (ver Textos). El valor por defecto es vacío.

    decimales

    Es el número de decimales con los que se escribirán los números incluidos en el texto. Puede ser cualquier número o expresión. Al evaluarse se redondea para decidir el número de decimales. Su valor por defecto es 2.

    fijo

    Determina si el número de decimales es fijo o si, por el contrario, se usa la notación “ajustada” en la que se eliminan los ceros innecesarios y el punto decimal si también es innecesario. Por ejemplo: en lugar de 25.3400 se escribe 25.34 y en lugar de 13.0 se escribe 13 (sin punto decimal). Si se usa notación exponencial siempre se escriben los números en forma ajustada, es decir, el atributo fijo no interviene en ese caso. El valor por defecto es fijo=si.
  • Superficie 3D

    Éste es el panel de configuración de una superficie:

    panel_superficie_3d

    expresión

    Es un campo de texto. Su contenido debe tener la forma: x=X(u,v) y=Y(u,v) z=Z(u,v)donde X, Y y Z son expresiones numéricas dependientes de los parámetros u y v. La superficie consta de la red de cuadriláteros formada por los puntos:(X(i/Nu,j/Nv),Y(i/Nu,j/Nv),Z(i/Nu,j/Nv)) para i=0,…,Nu y j=0,…,Nv. Antes de x, y, z se pueden definir variables intermedias que sólo se usan para los cálculos que se realizan al dibujar la superficie.
  • Polireg 3D

    Éste es el panel de configuración de un polígono regular:

    panel_polireg_3d

    expresión

    Es un   campo de texto. Su contenido puede ser cualquier cosa, en realidad este texto   sólo se usa como identificador durante la edición. El número de lados del   polígono regular queda determinado por Nu y su radio es la mitad de ancho,   siempre y cuando ancho=largo. Si ancho#largo entonces el polígono no es   regular sino que es una deformación de uno regular.

    Nu

    Es un   campo de texto. Su contenido es el número de lados del polígono regular.

    ancho

    Es un   campo de texto. Su contenido es la mitad del radio del polígono regular si ancho=largo.   Si ancho#largo entonces el polígono no es regular sino que es una deformación   de uno regular.

    largo

    Es un   campo de texto. Su contenido es la mitad del radio del polígono regular si ancho=largo.   Si ancho#largo entonces el polígono no es regular sino que es una deformación de uno regular.
    Efecto de las transparencias en la representación de los polígonos regulares

    Los polígonos regulares se representan como una unión de triángulos. En el caso de que se esté usando transparencias en el color del polígono se produce un efecto de antialiasing de Canvas y dibuja las líneas de separación entre esos triángulos mostrando una partición de dicho polígono.

    En la escena siguiente puede verse un prima en el que las bases están representadas utilizando el objeto “Polireg”. La base inferior no tiene transparencia en el color, pero la superior sí tiene. En esta última puede observarse el efecto de antialiasing citado.

    (Puede descargar la escena anterior desde este enlace)

    En la escena se ha incluido también un cuadrado dibujado con el objeto “Cara” con objeto de mostrar que en este tipo de objeto no se produce ningún efecto similar. Así pues, si se van a usar transparencias habrá que optar por el uso de “Cara”, en lugar de “Polireg”.