Documentacíon de DPGraph 2000 
 

Después de haber descargado e instalado DPGraph 2000 puede hacer "click" sobre las imágenes para modificar y manipular las gráficas.
 
[Gráfica de una esfera]
DPGraph hace gráficas de ecuaciones implicitas  3D, así representar  la esfera x^2 + y^2 + z^2 = 9 es tan sencillo como escribir GRAPH3D(X^2 + Y^2 + Z^2 = 9) o GRAPH3D( RHO=3 ) en coordenadas esféricas. No se necesita resolver z. No se necesitan representaciones paramétricas carentes de intuición.
[Gráfica del corte de tres planos]
DPGraph puede representar ecuaciones multiples.  Para mostrar a los estudiantes tres planos que se cortan en un punto, simplemente se escribe
GRAPH3D( (X=1, Y=1, Z=1) ).
[Gráfica de una superficie complicada]
GRAPH3D(SIN(2*X) + SIN(2*Y) = SIN(2*Z)) produce está simpática superficie (propuesta por Jerry Glynn). ¿Podria encontrar una representación paramétrica? Con DPGraph, no necesitas hacerlo.
[Gráfica de una función de x e y]
Superficies regulares z=f(x,y) son casos particulares de representaciones de ecuaciones implicitas. Esta superficie es:
GRAPH3D(Z = 6*COS(X^2 + Y^2)*E^(-SQRT(X^2 + Y^2))).
[Una desigualdad 3D]
Las desigualdades 3D no presentan ningún problema para DPGraph 2000. Representar  |xyz| <= 2 es tan sencillo como  GRAPH3D(|X*Y*Z| <= 2). La desigualdad es cierta en el lado "azul", y falsa en el lado "rojo". DPGraph añade azul en el lado rojo, haciendolo más magenta, para mostrar que la superficie donde la igualdad es cierta .
[Gráfica de un recinto de intersección]
También es fácil representar varias desigualdades 3D simultáneas. Se pueden poner en una lista como los planos anteriores, o se puede poner el símbolo & entre ellas para obtener un volumen de intersección. Este es el interior de una esfera intersecado con un toro:GRAPH3D(X^2 + Y^2 + Z^2 <= 9 & Z^2 + (SQRT(X^2 + Y^2) - 2.5)^2 >= 2)
[Superficies de nivel]
Si quiere representar superficies de nivel (equipotentiales, isotermas, etc.) de una función  f(x,y,z) en múltiplos de  d, puede reprentar: graph sin(pi*f(x,y,z)/d)=0. Por ejemplo, aquí aparecen representadas las superficies de  (xy + yz + zx) en  multiplos of 3.0: GRAPH3D(SIN(PI*((X*Y) + (Y*Z) + (Z*X))/3.0) = 0).
[Cortes de las superficies de nivel]
Una manera de hacer que una gráfica se mueva es utilizar la barra de desplazamiento de  DPGraph's para observar los cortes con los planos the x, y, or z en tiempo real. Aquí aparece la película de los cortes de las superficies de nivel anteriores, mostrando el interior de esa gráfica.
[Hiperboloide de una a dos hojas]
Otra forma de hacer una gráfica en movimiento es utilizar la variable tiempo TIME. Aquí aparece la película GRAPH3D(X^2 + Y^2 + SIN(TIME) = Z^2): un hiperboloide que pasa de una a dos hojas.
[Superficie de revolución]
Una tercera via para animar un gráfico es cambiar los parámetros A, B, C, or D en tiempo real utilizando la barra de desplazamiento de DPGraph.  Aquí aparece la animación de la superficie de revolución  z=x^2+y^2 generada cuando A cambia entre 0 y 2*pi : GRAPH3D(Z = (X^2+Y^2) * ONE((PI-ANGLE(-X,Y))/A)).
[Bell Curve]
Un cuarto camino para mover un gráfico es hacerle zooms o rotarlo utilizando las teclas Inicio(Home), RePág(Page Up), AvPág(Page Down), y las teclas con las flechas. Utilice las flechas en esta gráfica para ver qué tiene dentro. Esta campana ha sido realizada por  Jerry Thornhill.
[Casquete esférico]
Una quinta forma de hacer que un gráfico se mueva es hacer "click" en la opción  ANIMATE de DPGraph y seleccionar "continuous rotation".
[Gráfica de la cabeza de un Jellyfish
Aparte de utilizar las secciones, otra forma de ver dentro de una superficie es hacerla transparente.
Esta es una película de la cabeza de un "jellyfish" realizada por  Michael Parker.
[Gráfica 2D de la función seno]
También puede utilizar parámetros con gráficas 2D.  Este gráfico le permite utilizar la barra de desplazamiento de DPGraph's para cambiar los parámetros A, B, y C explorando la función seno y=a sin(bx+c) con el comando GRAPH3D((Y = A*SIN(B*X+C), X=0, Y=0)).
[Gráfica 2D de varias funciones]
Observe que los ejes coordenados se han dibujado mediante las ecuaciones implicitas x = 0 and y = 0. Se pueden poner tantas curvas como se quieran en la lista.Por ejemplo, aquí esta representada
GRAPH3D((A*X^2+B*Y^2=C^2, X^2=SIN(Y^2), X=0, Y=0)).
[El interior de un círculo]
Las desigualdades 2D son un caso particular de las desigualdades 3D,  DPGraph puede represnetarlas fácilmente. Por ejemplo para rellenar el círculo x^2+y^2<6, basta ordenar GRAPH3D((X^2+Y^2<6 & Z>0, X=0, Y=0 )).
[Gráfica dfe una desigualdad complicada]
Esta película representa las desigualdades más complicadas en 2D: (y<dx & y<a sin(bx+c) & x^2+y^2<6|sin(t/3)|) and (y>dx & y>asin(bx+c) & x^2+y^2>6|sin(t/3)|) que van variando con el tiempo, t, conforme el circulo aumenta o disminuye de tamaño.
[Fluido 2D]
Cómo en 3D, DPGraph puede representar curvas de nivel 2D.Éstas permiten observar distintos fenómenos como las aplicaciones conformes en variable compleja, curvas integrales en ecuciones diferenciales. Esta película representa las líneas equipotenciales de un flujo desde la fuente de la derecha al sumidero de la izquierda. Se puede utilizar la barra de desplazamiento de  DPGraph's para variar A (la distancia entre la fuente y el sumidero) y C (la fuerza de la fuente o del sumidero).
[Curvas de nivel]
Otro tipo de representaciónes 2D es el diagrama o mapa de contorno (curvas de nivel) de una superficie  3D. Aquí aparece
el mapa de contorno de z = 3 sin(x) sin(y): GRAPH3D(Z = 3*SIN(X)*SIN(Y)). El color rojo señala a los puntos par los que z es mayor (están mas altos) y el azul es para los puntos más bajos.
[Seasick graph]
DPGraph incluso permite hacer representaciones en más dimensiones. DPGraph puede representar gráficas 7D (matrices 3D dependientes del tiempo formadas por vectores 3D). Aquí está representada
GRAPH3D( VECTOR(-SIN(THETA+TIME)/6, COS(THETA+TIME)/6,0) ).
[Gráfica de un vector]
Si sólo quiere ver unos pocos vectores en lugar de todo el campo, puede utilizar la función NEAR para seleccionar sólo un subconjunto de los mismos. La representación de
GRAPH3D( VECTOR( NEAR(0,0,0)*A,B,C ) )
proporciona un único vector, centrado en el origen que puede moverse mediante la barra de desplazamiento al variar A, B, y C.
[Octaedro estrellado]
Ironicamente, gracias a sus posibilidades DPGraph es excelente para mostrar la belleza de las matemáticas a los estudiantes principiantes. Este octaedro estrellado, realizado por Vladimir Smirnov es un ejemplo de lo que puede hacerse con la función valor absoluto.
Módelo de formación molecular, realizado por Hassan Sedaghat. Utilice la barra de desplazamiento para variar los valores de A..
Molécula de Metano realizada por Ludving Strigeus.

INTRODUCCIÓN:

    DPGraph 2000 te permite crear bellas superfices 3D, a todo color y con calidad fotográfica, para despues mostrarlas en pantalla, y publicarlas y manipularlas en Internet.
    Para una superfice normal, como una esfera, es tan fácil como escribir GRAPH3D( X^2 + Y^2 + Z^2 = 9 ) en
coordenadas cartesianas o GRAPH3D( RHO = 3 ) en coordenadas esféricas.
    Superficies más raras, como la variedad de Glynn, son tan fáciles como GRAPH3D( SIN(2*X) + SIN(2*Y) = SIN(2*Z) ).
    DPGraph 2000 puede representar desigualdades 3D, como GRAPH3D( Z*X > Y ), y también puede mostrar la intersección de regiones definidas por desigualdades 3D como GRAPH3D( X^2+Y^2+Z^2<=9 & X>1 ).
    Si queremos representar varias superficies, bastará con ponerlas en una lista: GRAPH3D( (X=1, Y=1, Z=1) ) nos muestra la intersección de tres planos.
    Se puede dar movimiento a las superficies usando el tiempo (TIME) como una variable: un hiperboloide que
pasa de una a dos hojas es tan fácil como GRAPH3D( X^2 + Y^2 + SIN(TIME) = Z^2 )
    Se puede utilizar el comando VECTOR para visualizar campos de vectores:GRAPH3D( VECTOR( X/RHO/3, Y/RHO/3, Z/RHO/3) ).
    Se pueden explorar los efectos de cambiar parámetros en las gráficas como en GRAPH3D( A*X^2 + B*Y^2 + C*Z^2 = 9*D^2 ), utilizando la barra de desplazamiento que aparece en la ventana de DPGraph 2000's para modificar los valores de A, B, C, y D en tiempo real.
    Para ampliar (zoom) y girar las gráficas, se pueden utilizar las teclas Home (Inicio), PageUp (RePág), PageDown (AvPág), y las teclas con flechas.
    DPGraph 2000 ha sido programado en lenguaje ensamblador para conseguir la máxima velocidad en la construcción de las gráficas.

WEBSITE: www.davidparker.com

AVISO LEGAL: DPGraph 2000  no es "shareware"; las copias de usuarios sin licencia son ilegales. DPGraph es una marca registrada por  David Parker.  Copyright (C) 1997-2000 by David Parker. Todos los derechos reservados.

REQUISITOS: Cualquier PC compatible bajo Windows 95, Windows 98, Windows NT 4.0, or posterior. DPGraph 2000 necesita menos de  450k de espacio en su disco duro.

PROGRAMA DE INSTALACION:  El programa de instalación es InstallDPGraph2000.exe . Al ejecutar InstallDPGraph2000.exe se instala  DPGraph 2000 and todos los ficheros de ejemplos.

DESINSTALLACIÓN:  DPGraph 2000 se puede desinstalar de su disco duro de dos maneras.  1: haga "click" en INICIO - CONFIGURACION - PANEL DE CONTROL - AGREGAR/QUITAR PROGRAMAS, despues buscar DPGraph 2000 en la ventana, seleccionelo, y haga "click" en el boton AGREGAR/QUITAR.  2: Haga "click" en INICIO - PROGRAMAS - - DPGRAPH 2000 - UNINSTALL.

ERRORES COMUNES: Los cinco errores más comunes cuando se crean gráficas en la ventana de edición EDIT son:

  1.  no utilizar  asteriscos (*) para la multiplicación;
  2.  no escribir los símbolos de igualdad (=) o desigualdad (<>);
  3.  olvidar los paréntesis para las listas de ecuaciones;
  4.  tratar de utilizar igualdades en las intersecciones (DPGraph sólo puede representar intersecciones de desigualdades, es decir, regiones del espacio);
  5.  poner o dejar un espacio en blanco entre los dos símbolos  :=, >=, o <=, que se usan para asignar parámetros o escribir desigualdades.
Equivocado: Correcto:
graph3d( 3x = z^2 ) graph3d( 3*x = z^2 )
graph3d( x^2+y^2 ) graph3d( z = x^2+y^2 )
graph3d( x=1, y=1 ) graph3d( ( x=1, y=1 ) )
graph3d( x=1 & y=1 ) graph3d( x>1 & y>=1 )
graph3d( z^2> =x^2 ) graph3d( z^2 >= x^2 )

DESIGUALDADES:
Al representar desigualdades, como GRAPH3D( Z*X > Y ) recuerde que el color "azul" señala la región donde la desigualdad es cierta; el color "rojo" señala la región donde la desigualdad es falsa. Si la igualdad ocurre en la superfice como en GRAPH3D( Z*X > Y ), DPGraph añade azul en el lado rojo, haciendolo más magenta, para mostrar que la superficie donde la igualdad es cierta.

DEFAULTS.DPG:
Con la experiencia puede encontrar útil el siguiente procedimiento para representar nuevas superficies:
  Abra el fichero DEFAULTS.DPG con DPGraph 2000, vaya a EDIT, modifique la ecuación predeterminada, y haga "clik" en  EXECUTE. Como todas las opciones están presentes en el fichero DEFAULTS.DPG, pueden ser modificadas con un mínimo tecleo. Por último, si lo deses, vaya a  SAVE para grabar el fichero modificado con un nombre diferente.

RESOLUCION:
La manera más sencilla de mejorar el aspecto de las gráficas es aumentando su resolución. El valor por defecto de la misma es de 21 x 21 x 21, e.d. utilizando el mallado definido por 21 puntos de cada eje. Para cambiar la resolución utilice la ventana de edición EDIT par insertar o modificar la siguiente línea:

graph3d.resolution := 30


COPIAR GRAFICAS AL PORTAPAPELES:
Haga "click" en la opción  CLIPBOARD del menú, para copiar la gráfica al portapapeles.
Para copiar la ventana entera (incluyendo los bordes), presione simultaneamente las teclas  ALT y ImprPant (PRINTSCREEN).
Para copiar toda la pantalla del monitor presione sólo la tecla ImprPant (PRINTSCREEN).

COPIAR GRAFICAS A OTRA APLICACION:
Si la otra aplicación soporta la acción de pegar (paste), primero copie la gráfica al portapapeles y luego haga "click" en la opción PEGAR (PASTE) del menu de EDICION (EDIT) de la otra aplicación.

IMPRIMIR GRAFICAS:
Comience por exportar el gráfico a una aplicación, como por ejemplo Word o Paint, que permita imprimir, y utilice esta aplicación para IMPRIMIR o guardar la gráfica en un formato tranportable como GIF JPG PS PDF, etc.

FORMATO DE LOS FICHEROS dpg:
Los ficheros .DPG utilizados por DPGraph 2000 son ficheros estándar "sólo texto" ASCII. Se pueden leer y editar cun cualquier editor de texto como por ejemplo Notepad. Cada línea del fichero es un comando para  DPGraph 2000. Por ejemplom un fichero sería:

graph3d.view:=top
graph3d.perspective:=false
graph3d(z=3*sin(x*y))
Cada comando debe de estar en una línea separada.
El comando  GRAPH3D debe de aparecer en la última línea.
 
 

GRAFICAS 2D
También es posible representar gráficas de curvas en el plano y=f(x) o F(x,y)=0, basta con considerar las superfices 3D dadas por la misma ecuación (cilindros cuya generatriz es el eje z) y observarlas en una caja tridimensional con dimensión z pequeña, vista desde arriba sin perspectiva. Por ejemplo para representar la función y=sen(x) y los ejes x=0 e y=0, basta con utilizar los siguientes comandos:

graph3d.box := true               ;muestra los bordes de la caja
graph3d.mesh := true
graph3d.view := top               ;vista desde arriba
graph3d.perspective := false   ;sin perspectiva
graph3d.resolution := 21
graph3d.minimumx := -3
graph3d.maximumx := 3
graph3d.minimumy := -2
graph3d.maximumy := 2
graph3d.minimumz := -0.1    ;hace pequeña la altura
graph3d.maximumz := 0.1    ;de la caja (eje z)
graph3d( ( y = sin(x), x=0, y=0 ) )
 

BARRA DE DESPLAZAMIENTO (SCROLLBAR)
La opción SCROLLBAR del menú de DPGraph 2000 permite observar de forma dinámica (usando la barra de desplazamiento que aparecerá a la derecha de la ventana del programa) los cortes con los planos X=constante, Y=constante y Z=constante al marcar espectivamente una de esas tres letras en el cuadro de diálogo de esta opción. También permite variar la superficie, moviendo la citada barra de desplazamiento) en función de los parámetros A, B, C, o D, después de activar la letra correspondiente en el cuadro de diálogo de la opción.

OPCIONES:
Los valores predeterminados aparecen en letras MAYUSCULAS.
 
graph3d.resolution (el número de puntos considerados en el lado más largo de la caja en la que se representa la superficie, su valor predeterminado es 21; los otros lados de la caja tienen una resolución proporcional a la longitud del lado)
graph3d.mesh (TRUE , false)  (verdadero/falso) (dibuja los segmentos que unen los puntos que estan en la superfice y en la malla determinada por los puntos considerados en cada lado de la caja)
graph3d.perspective (TRUE , false)  (verdadero/falso) 
graph3d.box (TRUE , false)  (verdadero/falso) (dibuja las aristas de la caja)
graph3d.view (STANDARD, top, side, front, or textbook) (ESTANDARD, desde arriba, desde el frente, o textbook)
graph3d.contrast (el valor predeterminado es 1/2, puede tomar valores entre  0 y 1)
graph3d.transparency (el valor predeterminado es 1/2, puede tomar valores entre  0 y 1)
graph3d.background (black, gray, WHITE, brown, red, yellow, green, cyan, blue, o magenta) (negro, gris, BLANCO, marron, rojo, amarillo, verde, cyan, azul, o magenta)
graph3d.color (BYHEIGHT, bysteepness, black, gray, white, brown, red, yellow, green, cyan, blue, or magenta) (POR-EL-VALOR-DE-Z, por-las curvas de la malla, negro, gris, blanco, ...)
graph3d.highlight (el valor predeterminado es 1/2, puede tomar valores entre  0 y 1)
graph3d.shading (el valor predeterminado es 1/2, puede tomar valores entre  0 y 1)
graph3d.vectorcolor (BYHEIGHT, bysteepness, black, gray, white, brown, red, yellow, green, cyan, blue, or magenta) (POR-EL-VALOR-DE-Z, por-las curvas de la malla, negro, gris, blanco, ...)
graph3d.vectorhighlight (el valor predeterminado es 1/2, puede tomar valores entre  0 y 1)
graph3d.vectorshading (el valor predeterminado es 1/2, puede tomar valores entre  0 y 1)
graph3d.vectoralign (TAIL, center, or tip) (alinear el vector desde: BASE-DEL-VECTOR, centro, punta)
graph3d.vectorarrowhead (true , FALSE)  (verdadero/falso)
graph3d.minimumx (mínimo valor de x en los lados de la caja, el valor predeterminado es  -3)
graph3d.maximumx (máximo valor de x en los lados de la caja, el valor predeterminado es  3)
graph3d.minimumy (mínimo valor de y en los lados de la caja, el valor predeterminado es  -3)
graph3d.maximumy (máximo valor de y en los lados de la caja, el valor predeterminado es  3)
graph3d.minimumz (mínimo valor de z en los lados de la caja, el valor predeterminado es  -3)
graph3d.maximumz (máximo valor de z en los lados de la caja, el valor predeterminado es  3)
a.minimum (mínimo valor para la variable A de la barra de desplazamiento)
a.maximum (máximo valor para la variable A de la barra de desplazamiento)
b.minimum (mínimo valor para la variable B de la barra de desplazamiento)
b.maximum (máximo valor para la variable B de la barra de desplazamiento)
c.minimum (mínimo valor para la variable C de la barra de desplazamiento)
c.maximum (máximo valor para la variable C de la barra de desplazamiento)
d.minimum (mínimo valor para la variable D de la barra de desplazamiento)
d.maximum (máximo valor para la variable D de la barra de desplazamiento)

VALORES PARA LAS OPCIONES:
true (verdadero)(para mesh, perspective, box, y vectorarrowhead)
false (para mesh, perspective, box, y vectorarrowhead)
standard (para view, x será el eje más  horizontal)
textbook (para view, y será el eje más  horizontal)
top (desde arriba)(para view)
front (desde el frente)(para view)
side (desde el lateral)(para view)
byheight (por altura)(para color o vectorcolor)
bysteepness (por pasos)(para color o vectorcolor)
black (negro)(para color, vectorcolor, o background)
gray (gris)(for color, vectorcolor, o background)
white (blanco)(para color, vectorcolor, o background)
brown (marrón)(para color, vectorcolor, o background)
red (rojo)(para color, vectorcolor, o background)
yellow (amarillo)(para color, vectorcolor, o background)
green (verde)(para color, vectorcolor, o background)
cyan (cyan)(para color, vectorcolor, o background)
blue (azul)(para color, vectorcolor, o background)
magenta (magenta)(para color, vectorcolor, o background)
tail (para vectoralign)
center (para vectoralign)
tip (para vectoralign)

CONSTANTES:
 
pi (pi)
e (base del logaritmo natural)

VARIABLES:
 
x (x variable para representaciones 3D)
y (y variable para representaciones 3D)
z (z variable para representaciones 3D)
r (radio polar, r=sqrt(x^2+y^2))
theta (ángulo polar, 0<=theta<2*pi, theta=angle(-x,-y)+pi)
rho (radio esférico, rho=sqrt(x^2+y^2+z^2))
phi (ángulo esférico, 0<=phi<=pi, phi=angle(z,r))
a (variable a para la barra de desplazamiento)
b (variable b para la barra de desplazamiento)
c (variable c para la barra de desplazamiento)
d (variable d para la barra de desplazamiento)
time (va tomando el valor del reloj del ordenador para gráficos que cambian con el tiempo)

SÍMBOLOS:
 
= (igualdad, para escribir ecuaciones)
< (menor que, para escribir desigualdades)
> (mayor que, para escribir desigualdades)
<= (menor o igual que, para escribir desigualdades))
>= (mayor o igual que, para escribir desigualdades))
& (intersección)
:= (asignación, para asignar variables)
(...) (las listas de argumentos o ecuaciones van entre paréntesis)
+ (suma o signo para números positivos)
- (resta o signo para números negativos)
* (multiplicación)
/ (división)
^ (potencias)
|...| (valor absoluto, |.x.|=abs(x), la última expresión también es válida)
! (factorial)

Funciones con un argumento:
 
abs (valor absoluto, abs(x)=|.x.|, la última expresión también es válida)
acos (arcocoseno)
acosh (arcocoseno hiperbólico)
acot (arcocotangente)
acoth (arcocotangente hiperbólico)
acsc (arcocosecante)
acsch (arcocosecante hiperbólico)
asec (arcosecante)
asech (arcosecante hiperbólica)
asin (arcoseno)
asinh (arcoseno hiperbólico)
atan (arcotangente)
atanh (arcotangente hiperbólica)
cos (coseno)
cosh (coseno hiperbólico)
cot (cotangente)
coth (cotangente hiperbólica)
csc (cosecante)
csch (cosecante hiperbólica )
gamma (function gamma)
ln (log base e)
log (log base 10)
nonneg (1 si x>=0, en otro caso no está definido)
one (1 si 0<=x<=1, en otro caso no está definido)
sec (secante)
sech (secante hiperbólico)
sign (signo, sign(x)= -1 si x es negativo, 1 si es positivo, indefinido si es 0 o no está definido)
sin (seno)
sinh (seno hiperbólico)
sqr (cuadrado, sqr(x)=x*x)
sqrt (raiz cuadrada)
tan (tangente)
tanh (tangente hiperbólica)

Funciones de DOS ARGUMENTOS:
 
angle (-pi <= ángulo que forma el vector (x,y) con respecto al eje positivo  x <= pi, es el argumento principal del vector (x,y))
beta (la función beta)

Funciones de TRES ARGUMENTOS:
 
near (1 si (x,y,z) esta cerca del  near current grid, en otro caso permanece indefinida)
vector (dibuja un campo de vectores)

PROBLEMAS CONOCIDOS:

  1. Microsoft WordPad bajo Windows NT 4.0 al incluir gráficos producidos por DPGraph2000, o gráficos copiados desde el PORTAPAPELES,  los construye demasiado grandes. También recorta estos gráficos por el lado derecho.
  2. Microsoft Paint utilizando 256 colores sólo usa 16 colores con los gráficos producidos por DPGraph2000.


Copyright © 1999-2000 by David Parker. All rights reserved.