Gráficos 2D
Gráficos
Se llaman gráficos a todos los objetos que se pueden dibujar en una escena: puntos, segmentos, curvas, arcos, (lugares geométricos de) ecuaciones, textos, imágenes, macros, etc... . Los gráficos de una escena pueden editarse usando el panel de configuración de gráficos, al que se accede seleccionando "Gráficos" en la ventana de edición.
El Panel de configuración de Gráficos tiene este aspecto.
A la izquierda aparece la lista de todos los gráficos de la escena (en este caso hay uno de cada tipo). A la derecha aparece un panel (que será diferente para cada tipo de gráfico) en el que se pueden editar todos los parámetros que definien al objeto gráfico seleccionado en la lista. En esta página se explica el contenido y funcionamiento de los diversos paneles.
Nota: Si se hace un clic sobre la etiqueta azul de Gráficos, aparecerá una ventana con un área de texto que contiene el código de todos los gráficos, uno en cada línea. Este texto se puede editar manualmente y pulsando aceptar se actualiza el editor con los cambios realizados. Los autores experimentados pueden encontrar este método de edición muy cómodo y útil para cierto tipo de modificaciones.
Para crear un nuevo gráfico hay que hacer un clic sobre el botón + . Al hacerlo aparece una ventana de diálogo con una lista en la que se debe escoger el tipo de gráfico que se desea crear.
Hay doce tipos de gráficos diferentes: ecuación, curva, sucesión, punto, segmento, flecha, polígono, arco, relleno, texto, imagen y macro. y cada uno tiene su propio panel de configuración.
Campos comunes.
Los paneles de configuración de los distintos tipos de gráficos se parecen entre sí pues la mayoría comparten algunos campos, concretamente los que se muestran en el siguiente panel.
En la siguiente tabla se explican los campos comunes a todos los gráficos.
espacio
|
Se trata de un selector que tiene la lista de los espacios de dos
dimensiones que se hayan definido. Si sólo hay un espacio de dos dimensiones y éste no
tiene nombre, la lista aparece vacía. Si hay más de un espacio, entonces debe seleccionarse el espacio al cual ha de pertenecer el gráfico. |
tipo | Es un campo de texto no editable que muestra el tipo del gráfico. |
fondo |
Si se selecciona fondo, el gráfico sólo se dibuja en el
"fondo" de la escena y por lo tanto se actualiza sólo cuando se pulsa inicio y
cuando se modifica la escala
o la posición del origen (O.x
y O.y). Cuando un gráfico está siempre fijo en la escena, es decir, no depende de los controles ni de los auxiliares, conviene definirlo como de fondo pues así se ahorra trabajo al procesador que no tendrá que dibujarlo cada vez que hay un cambio en la escena. |
dibujar si
|
Es un campo de texto donde se puede escribir una expresión
booleana. El gráfico se dibuja si la expresión es vacía o si la expresión tiene valor verdadero (o >0). Si la expresión depende de x o y y el gráfico es una ecuación, entonces sólo se dibujan los puntos de la gráfica que satisfacen la expresión. Si el valor de x o y hace que la expresión no se cumpla en el momento en que se va a dibujar un objeto, entonces no se dibuja (es responsabilidad del autor controlar el valor de las variables x e y fuera de las ecuaciones). |
color |
El botón sin etiqueta que aparece en general a la derecha de la primera
línea del panel de edición, muestra el color con que se dibujará el gráfico. Haciendo un clic sobre el botón aparece la ventana de configuración de colores (ver colores). El color defecto de todos los gráficos es azul. Los gráficos de tipo imagen y macro no tienen color. |
expresión |
Es un campo de texto. Su contenido debe ser una expresión cuyo contenido
varía según el tipo de gráfico. Por ejemplo en las curvas la expresión debe tener la
forma (f(t),g(t)), donde f
y g son funciones cualesquiera del parámetro t.
El valor por defecto de la expresión también cambia según el tipo de gráfico. En la documentación de cada tipo de gráfico se explica cual debe ser el contenido de la expresión y cuál es el valores por defecto en cada tipo. En varios gráficos (punto, relleno, texto, imagen) la expresión es simplemente las coordenadas de un punto. Los gráficos arco y macro no tienen expresión. En el caso del arco la expresión se sustituye por campos para radio, inicio y fin. En el caso del macro la expresión se convierte en la trayectoria y nombre del macro. |
rastro (y su color) |
Si se selecciona rastro el objeto gráfico deja un rastro
en la escena del color seleccionado. Para elegir un color hay que pulsar el botón
cuadrado que aparece junto al selector (ver colores).
Cuando un gráfico deja rastro se puede apreciar su trayectoria en la escena. Pulsando el botón de limpiar se borran los rastros de los gráficos. El valor por defecto es no seleccionado y el color del rastro por defecto es gris. |
familia |
Este selector permite convertir un gráfico en toda una familia de
gráficos dependiente de un parámetro. Al seleccionar familia se activan los otros campos de la última línea: parámtero, intervalo y pasos. y el autor puede así configurar la familia. El valor por defecto es no seleccionado. |
parámetro |
Debe ser una sola palabra, de preferencia corta. Por defecto es s. El nombre del parámetro se puede utilizar en la definición del objeto gráfico para definir la familia. El programa dibujará los gráficos con los valores del parámetro recorriendo el intervalo especificado en el número de pasos elegido. |
intervalo |
Debe contener dos expresiones reales entre corchetes y separadas por una coma. Por defecto es [0,1]. El parámetro recorre el intervalo definido entre el primero y el segundo valor en el número de pasos especificado. |
pasos |
El parámetro recorre el intervalo
definido entre el primero y el segundo valor en el número de pasos
especificado y dibuja un gráfico al comenzar y después de cada paso, es decir, hace pasos+1 dibujos. En otras palabras, pasos es el número de subintervalos iguales en que se divide el intervalo. y el parámetro pasa por los extremos de los subintervalos. El valor por defecto es 8. |
texto |
Es una etiqueta que acompaña al objeto gráfico y se escribe cerca de su
posición o algo que puede considerarse como su posición. Por ejemplo en un punto se
escribe un poco arriba y a la derecha. Los textos se dibujan en el mismo color que el objeto gráfico. 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. |
coord_abs | Hace que el gráfico se interprete en pixels y en coordenadas absolutas
con el origen en el vértice superior izquierdo del rectángulo del espacio al que
pertenece el gráfico y la escala igual a 1 pixel por unidad. Los gráficos definidos en coordenadas absolutas no se mueven al cambiar el origen del sistema o la escala. Nota: Este parámetro es innecesario en los gráficos de tipo texto pues en ellos la posición se defiene siempr en coordenadas absolutas. Nota: Descartes tiene definidas internamente las funciones _x(x) y _y(y)que devuelven las coordenadas absolutas del punto (x,y). Si el espacio tiene nombre nomesp entonces estas funciones son nomesp._x(x) y nomesp._y(y). |
Campos específicos.
El resto de esta página explica los campos de los paneles de configuración específicos de cada tipo gráfico. Se incluyen también los campos comunes cuya descripción o contenido depende del tipo de gráfico.
Ecuación
Los lugares geométricos determinados por las ecuaciones en x e y dan lugar a gráficos. Estos son los gráficos del tipo ecuación.
El panel de configuración específico del tipo ecuación tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión |
Su contenido debe ser una ecuación en x , y. El objeto gráfico asociado a una ecuación es el lugar geométrico de los puntos que la satisfacen. Su valor por defecto es y=x. Descartes distingue tres tipos de ecuaciones y da un tratamiento diferente a cada uno para obtener su gráfica. La tabla incluída presenta los tres tipos de ecuaciones y explica el tratamiento que reciben.
|
||||||
ancho | Es el ancho o grueso de la gráfica en pixeles. El valor por defecto es 1. Se recomienda utilizar poco los anchos diferentes de 1 pues ralentizan el dibujo. |
||||||
relleno+ |
Si la ecuación es de la forma y=f(x)
y el selector relleno+
está activado, el espacio entre el eje x y la gráfica, arriba del eje x, se
colorea del color seleccionado. Si la ecuación es de la forma x=g(y) y el selector relleno+ está activado, el espacio entre el eje y y la gráfica, a la derecha del eje y, se colorea del color seleccionado. |
||||||
relleno- |
Si la ecuación es de la forma y=f(x)
y el selector relleno-
está activado, el espacio entre el eje x y la gráfica, abajo del eje x, se colorea
del color seleccionado. Si la ecuación es de la forma x=g(y) y el selector relleno- está activado, el espacio entre el eje y y la gráfica, a la izquierda del eje y, se colorea del color seleccionado. |
||||||
visible |
Si este selector está seleccionado, en la parte inferior de la escena
aparecerá un campo de texto donde se ve la expresión de la ecuación en el mismo color
de la gráfica y con el color de fondo de la escena. Por defecto este selector aparece activado. Si hay varias ecuaciones o curvas en una escena, abajo de ella aparecen los campos de texto de todas y cada una de las que son visibles. Si son muchas los campos pueden resultar demasiado pequeños, por lo que se recomienda no dejar visibles los campos de texto de más de tres o cuatro ecuaciones o curvas. |
||||||
editable |
Este campo sólo se puede utilizar si visible está selecionado. Cuando editable se activa, el contenido del campo de texto que aparece bajo la escena con la ecuación (o curva) puede ser modificado por el usuario. Esta opción puede ser útil cuando se desea que el alumno practique la escritura de fórmulas. |
Nota: Hay un pequeño conjunto de formas canónicas de ecuaciones de la recta y de las curvas cónicas que reciben un tratamiento especial. Su utilidad radica en que los dibujos se realizan muy rápidamente. Estas son las formas canónicas que Descartes reconoce:
y=m*x+b
x=m*y+a
A*x+B*y=C
e=sqrt((x-Fx)^2+(y-Fy)^2)/(d+(x-Fx)*cos(t)+(y-Fy)*sen(t))
e=sqrt((x-Fx)^2+(y-Fy)^2)/(d-((x-Fx)*(Dx-Fx)+(y-Fy)*(Dy-Fy))/d)
Si se escriben exactamente tal como aparecen (sin cambiar una sola letra), el programa las reconoce y hace el dibujo de la recta o curva cónica con un procedimiento muy rápido. La única utilidad de estas formas radica en la rapidez con que se dibujan, cosa que puede aprovecharse en alguna escena específica sobre rectas y cónicas para mejorar la interactividad (ver por ejemplo Excentricidad y Directriz).
Curva
El panel de configuración específico del tipo curva tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión |
Su contenido debe ser una expresión del tipo (f(t),g(t)),
donde f y g son funciones cualesquiera del parámetro t
(o el que se defina en el campo parámetro). El gráfico es en realidad un polígono. Para que parezca una curva será necesario utilizar un número grande de pasos, pero es conveniente cuidar que no sea excesivo para que el procesador no trabaje demasiado. El nombre del parámetro t, el intervalo y el número de pasos puede modificarse usando los campos correspondientes. |
parámetro | Debe ser una sola palabra, de preferencia corta. Por defecto es t.
El programa dibujará el polígono con vértices: (f(t),g(t)) para t entre el primero y el último de los valores del intervalo, con incrementos iguales a la longitud del intervalo entre el número de pasos. |
intervalo |
Debe contener dos expresiones ti y tf reales entre corchetes y separadas por una coma, es decir, [ti,tf]. El intervalo por defecto es [0,1]. El parámetro recorre el intervalo definido entre ti y tf en el número de pasos especificado. |
pasos |
El parámetro recorre el intervalo
definido entre el primero y el segundo valor en el número de pasos
especificado y dibuja la curva como un polígono con vértices (f(t),g(t))
con t = ti, t = ti+(tf-ti)/pasos, t = ti+2*(tf-ti)/pasos, etc... hasta llegar a t = ti+pasos*(tf-ti)/pasos = tf. En otras palabras, pasos es el número de subintervalos iguales en que se divide el intervalo. y el parámetro pasa por los extremos de los subintervalos. |
ancho | Es el ancho o grueso de la curva en pixeles. El valor por defecto es 1. Se recomienda utilizar poco los anchos diferentes de 1 pues ralentizan el dibujo. |
relleno |
Si el selector relleno está activado, el programa rellena el interior de la curva (considerada como un polígono). Si la curva no tiene un interior bien definido, el resultado puede ser algo extraño. |
Punto
El panel de configuración específico del tipo punto tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión |
Su contenido debe ser una expresión del tipo (X,Y),
donde X e Y son expresiones reales cualesquiera que
representan las abscisa y ordenada del punto. El valor por defecto es (0,0), o sea el origen. |
tamaño |
Es el radio del "punto". En realidad el program dibuja un disco de radio tamaño. Si tamaño=0 el punto no se dibuja. Esto último puede aprovecharse para dibujar textos asociados a puntos invisibles, usando las coordenadas del espacio. |
|
Se escribe un poco arriba y a la derecha, en el mismo color del punto. |
Sucesión
El panel de configuración específico del tipo sucesión tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión |
Su contenido debe ser una expresión del tipo (X,Y),
donde X e Y son expresiones reales
dependientes de n ,que
representan las abscisa y ordenada de los puntos de la sucesión. El valor por defecto es (n,1/n), o sea el origen. |
tamaño | Es el radio de los "puntos" de la sucesión. En realidad el programa dibuja discos de radio tamaño. Si tamaño=0 los puntos no se dibujan. |
dominio |
Debe ser una expresión de la forma [n1,n2] donde n1 y n2 son dos enteros que se interpretan como el inicio y el final del intervalo de enteros que n recorrerá. El programa dibujará los puntos (X,Y) para cada valor de n entre n1 y n2. |
En realidad una sucesión es una familia de puntos pero con parámetro entero.
Segmento
El panel de configuración específico del tipo segmento tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión (sin etiqueta) |
Su contenido debe ser una expresión del tipo (X1,Y1)(X2,Y2),
donde (X1,Y1) son las
coordenadas del inicio del segmento y (X2,Y2)
las del final del segmento. El valor por defecto es (0,0)(1,1), o sea el segmento entre el origen y el punto (1,1). |
tamaño | Es el radio de los extremos del segmento, que se dibujan como dos discos. |
ancho |
Es el ancho o grueso del segmento en pixeles. El valor por defecto es 1. Se recomienda utilizar poco los anchos diferentes de 1 pues ralentizan el dibujo. |
|
Se escribe a 1/3 del camino entre el inicio y el final del segmento. |
Flecha
El panel de configuración específico del tipo flecha tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión (sin etiqueta) |
Es el campo de texto que aparece sin etiqueta como primera línea del
panel. Su contenido, igual que en el caso de un segmento, debe ser una expresión del tipo
(X1,Y1)(X2,Y2), donde (X1,Y1) son las coordenadas del
inicio de la flecha y (X2,Y2)
las de la punta. El valor por defecto es (0,0)(1,1), o sea la flecha que va del origen y al punto (1,1). |
color | Es el color de la orilla o borde de la flecha, su interior se dibuja en el color flecha. |
flecha | Es el color del interior de la flecha. El color flecha por defecto es rojo. |
ancho |
Es el ancho o grueso de la flecha en pixeles. El valor por defecto es 5. |
punta |
Es el ancho de la punta de la flecha. Su valor por defecto es 8. |
texto |
Se escribe a 1/3 del camino entre el inicio y la punta. |
Polígono
El panel de configuración específico del tipo polígono tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión |
Su contenido debe ser una expresión del tipo (x1,y1)(x2,y2)...(xN,yN), donde xn e yn son expresiones reales arbitrarias. El gráfico es el polígono con vértices en los puntos (xn,yn). |
ancho |
Es el ancho o grueso de los segmentos del polígono, en pixeles. El valor por defecto es 1. Se recomienda utilizar poco los anchos diferentes de 1 pues ralentizan el dibujo. |
relleno |
Si el selector relleno está activado, el programa rellena el interior del polígono. Si el polígono no tiene un interior bien definido, el resultado puede ser algo extraño. |
Arco
El panel de configuración específico del tipo arco tiene este aspecto:
La siguiente tabla explica los campos específicos.
centro | Debe ser una expresión del tipo (X,Y) que representará el centro del arco, donde X e Y pueden ser expresiones reales arbitrarias. |
radio | Es el radio del arco. Puede ser una expresión real arbitraria. |
inicio |
Es el inicio del arco. Hay dos opciones. Puede ser una expresión real arbitraria que se interpretará como el ángulo inicial en grados, o puede ser una expresión de la forma (x1,y1) que se interpretará como un punto. En el segundo caso el arco comienza en el segmento que une al centro (X,Y) con el punto (x1,y1). |
fin |
Es el final del arco. Hay dos opciones. Puede ser una expresión real arbitraria que se interpretará como el ángulo final en grados, o puede ser una expresión de la forma (x2,y2) que se interpretará como un punto. En el segundo caso el arco termina en el segmento que une al centro (X,Y) con el punto (x2,y2). |
ancho | Es el ancho o grueso del arco en pixeles. El valor por defecto es 1. Se recomienda utilizar poco los anchos diferentes de 1 pues ralentizan el dibujo. |
relleno |
Si el selector relleno
está activado, el programa rellena el interior del arco. Cuando se rellena un arco se nota que los radios inicial y final no son parte del arco. Si se desea que aparezcan dibujados, hay que crear dos segmentos. |
texto |
Se escribe comenzando un poco arriba a la derecha del centro del arco. |
Relleno
El panel de configuración específico del tipo relleno tiene este aspecto:
Como puede verse, se trata únicamente de un punto y un color. El punto funciona como la semilla o punto inicial de un proceso de relleno o coloreo que llena con el color seleccionado la región cerrada dentro de la cual se encuentra el punto. Los gráficos que son de fondo no cuentan como fronteras para el relleno, a menos que el relleno mismo sea de fondo.
La siguiente tabla explica los campos específicos.
expresión |
Su contenido debe ser una expresión del tipo (X,Y),
donde X e Y son
expresiones reales cualesquiera que representan las abscisa y ordenada del punto donde se
inciará el proceso de relleno o coloreo de la región cerrada que tiene al punto (X,Y) en su interior. El valor por defecto es (0,0), o sea el origen. |
Texto
El panel de configuración específico del tipo texto tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión |
Su contenido debe ser una expresión del tipo [X,Y],
donde X e Y son
expresiones reales cualesquiera que representan las abscisa y ordenada del comienzo del
texto, pero medidos en pixeles a partir del vértice superior izquierdo de la escena. El valor por defecto es [20,20], o sea el origen. |
texto |
Es el contenido propiamente dicho del gráfico de tipo texto.
Puede ser cualquier texto, puede tener varias líneas y además puede 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. |
Imagen
El panel de configuración específico del tipo imagen tiene este aspecto:
La siguiente tabla explica los campos específicos.
expresión |
Su contenido debe ser una expresión del tipo (X,Y),
donde X e Y son expresiones reales cualesquiera que representan las abscisa y ordenada del
extremo superior izquierdo de la imagen con respecto al origen de coordenadas del espacio. El valor por defecto es (0,0) o sea el origen del espacio. |
archivo |
Es un campo de texto libre en el que debe escribirse el nombre del archivo
que contiene la imagen que se desea usar como objeto gráfico. Sólo pueden utilizarse
archivos jpg y gif. Los archivos de imágenes pueden colocarse en el mismo sitio donde se
coloca Descartes.jar o en subdirectorios a partir de ahí (direccionamiento
general) o bien en la carpeta donde está la página que contiene la escena o en
subcarpetas de ella (direccionamiento particular). Nota: Para que el direccionamiento particular funcione es necesario que la página que contiene a la escena esté "debajo" de Descartes.jar, es decir, que el codebase sea de la forma "./", "../", "../../", "../../../", etc.... En el nombre del archivo hay que incluir los subdirectorios. |
animado | Selector para indicar si se trata de una imagen animada (gif animado). Es importante indicar al programa si la imagen es un gif animado pues estos requieren un tratamiento especial dentro del programa. |
frecuencia | Lapso de tiempo en milisegundos que debe haber entre una y otra
actualización de la imagen animada. Si se conoce la frecuencia de animación de la imagen, es conveniente escribirla pues el programa la usa para intercalar la animación propia con las de las imágenes animadas. Si este campo se deja vacío el programa supone que la imagen tiene una frecuencia de animación de 60 milisegundos entre cada dos marcos. |
Macro
El panel de configuración específico del tipo macro tiene este aspecto:
La siguiente tabla explica los campos específicos.
macro |
Se trata de un campo de texto y dos menús desplegables. |
Aux | Botón que sirven para obtener información del macro seleccionado. Un clic en él mostrará una lista con todos los auxiliares del macro a los que el autor puede asignar valores (o redefinir si se trata de funciones o algoritmos). |
Doc | Un clic en este botón abre la página web que contiene la escena que define al macro seleccionado. |
loc |
Es un campo de texto cuyo contenido debe ser del tipo (X,Y), donde X e Y son expresiones reales cualesquiera que representan las abscisa y ordenada el punto inicial del macro (Ver Macros.) con respecto al origen de coordenadas del espacio. |
rot |
Es un campo de texto cuyo contenido es una expresión o un número que será el ángulo que se girará (en sentido contrario a la agujas del reloj) el macro al dibujarse. |
Autor: José Luis Abreu León