Elemento: Superficie.

Icono: 

Texto: Una superficie 3D.

Descripción: Una Superficie es un elemento de dibujo que dibuja una superficie tridimensional de la forma (x,y,z) = (x(u,v),y(u,v),z(u,v)).Los datos de la superficie se proporcionan en una matriz tridimensional, como en:

for (int i=0; i<n; i++) {
  for (int j=0; j<m; j++) {
    data[i][j][0] = -3.14 + (6.28*i)/(n-1);
    data[i][j][1] = -3.14 + (6.28*j)/(m-1); 
    data[i][j][2] = Math.sin(data[i][j][0])*Math.cos(data[i][j][1]);
  }
}

donde n y m valen 15 y data se ha declarado como una matriz [n][m][3]. El resultado puede verse en la imagen siguiente.

La superficie puede moverse arrastrando cualquiera de sus puntos, invocando hasta tres acciones distintas.

Color Avanzado

Este elemento permite definir un sistema avanzado de coloreado del mismo. Se define un origen y una dirección en el espacio de modo que la distancia al origen en dicho dirección decide el color con que se coloreará el interior del elemento. Esto permite dibujos como el que se muestra en la siguiente figura.

Tabla de propiedades

Nombre Descripción Valores aceptados
Posición y Tamaño
X La coordenada X de la posición base del elemento. Cualquier constante o variable de tipo double o int.
Y La coordenada Y de la posición base del elemento. Cualquier constante o variable de tipo double o int.
Z La coordenada Z de la posición base del elemento. Cualquier constante o variable de tipo double o int.
Tamaño X El tamaño en el eje X del elemento. Cualquier constante o variable de tipo double o int.
Tamaño Y El tamaño en el eje Y del elemento. Cualquier constante o variable de tipo double o int.
Tamaño Z El tamaño en el eje Z del elemento. Cualquier constante o variable de tipo double o int.

Visibilidad e Interacción

Visible La visibilidad del elemento. Una variable booleana o una de las constantes true o false.
Activo Si el elemento responde a interacción del usuario. Una variable booleana o una de las constantes true o false.
Al Pulsar La acción a invocar cuando se hace clic sobre el elemento. El código Java a invocar para la acción. 
Al Mover La acción a invocar cuando se arrastra el elemento. El código Java a invocar para la acción. 
Al Soltar La acción a invocar cuando se suelta el elemento. El código Java a invocar para la acción. 
Configuración
Datos La matriz de datos del elemento. Una matriz tridimensional [n][m][3] de tipo double.
Aspecto Gráfico
Color Relleno El color usado para el fondo del elemento. El valor especial null dibuja el elemento hueco. Una variable Object de la clase java.awt.Color o uno de los colores predefinidos: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, yellow.

También puede especificarse un color dando las coordenadas enteras (entre 0 y 255) de sus componentes RGB (más la transparencia opcional).

El valor por defecto lo decide el sistema.

Color Línea El color usado para el borde del elemento. El valor especial null dibuja el elemento sin borde. Ver los valores para la propiedad Color Relleno.
Grosor El grosor para las líneas del elemento. Cualquier constante o variable de tipo double o int. El valor por defecto es 1.

También puede proporcionarse una variable Object de la clase java.awt.Stroke.

Desplazamiento Este es un factor que permite simular que el elemento se encuentra más lejos del observador de lo que en realidad está. Esto permite que se visualicen mejor otros elementos que se muevan sobre su superficie. Normalmente se trata de un factor ligeramente mayor que la unidad. P.e. 1.1. Cualquier constante o variable de tipo double.
Transp Interior El nivel de transparencia a usar cuando se dibuja la superficie rápidamente (al girar la escena). Cualquier constante o variable de tipo int

El valor debe ser desde 0 (transparente) a 255 (sólido).

Color Avanzado
Origen Color Define el punto de origen para el cálculo de los niveles de color. Una matriz unidimensional de tipo double con tres elementos. Uno para cada coordenada del punto de origen del color.
Dirección Color Define la dirección a lo largo de la cual se producen el gradiente de colores. Una matriz unidimensional de tipo double con tres elementos. Uno para cada coordenada del vector de gradiente del color.
Niveles Color Define el número de niveles que separan a las zonas del mismo color. El numero de niveles debe ser, por tanto, uno menos que el de colores. Una matriz unidimensional de tipo double que indica los valores en los cuales se produce un cambio de color.
Colores Define los colores a utilizar a los lados de cada uno de los niveles. El número de colores debe ser uno más que el de los niveles. Una matriz unidimensional de tipo Object. Cada elemento debe ser el color a utilizar en cada una de las zonas delimitadas por los niveles.

Para los valores véase la propiedad Color Relleno.

Nivel Abajo Si se debe usar el color de abajo en caso de encontrarse justamente en la línea de separación de dos niveles. Una variable booleana o una de las constantes true o false.