Universidad Iberoamericana
		Programacin Lgica
					     Otoo 1996
	Manuel Lpez Michelone
					Vctor Manuel Iniestra Alvarez
Proyecto Final
			Visualizador Tridimensional

Descripcin:

	Este programa es capaz de visualizar una representacin bidimensional de un cuerpo o silueta tridimensional. sta estar formada por puntos en el espacio y aquellos debern estar contenidos en un espacio limitado. Se darn tres coordenadas (XYZ) por cada punto, cada una de estas coordenadas podr variar de 0 a 256 (un Byte). El mtodo para almacenar los datos es el de archivos; los archivos guardarn la informacin en formato binario y con un punto por cada tres bytes. La visualizacin se har en todos los ngulos posibles pudiendo variarlos 1 cada vez.
	
Uso del Programa:

+------------------Visualizador Tridimensional------------------+
|                                                               |
|1 Generar una grfica tridimensional modificable en "genera()".|
|                                                               |
|2 Generar una grfica tridimensional modificable en "generar" .|
|                                                               |
|3 Visualizar una grfica tridimensional (F1-Help).             |
|                                                               |
|4 Manual del Usuario.                                          |
|                                                               |
|5 Manual Tcnico.                                              |
|                                                ESC para salir |
+---------------------------------------------------------------+

	La primera opcin generar un archivo con un grfico tridimensional que se define en la clusula "genera" dentro de "proyecta.pro". Cuando se elige esta opcin se pide el nombre del archivo donde se guardarn los puntos calculados. Se recomienda que el nombre del archivo NO tenga extensin. Si el archivo ya exista con anterioridad los nuevos datos sern agregados a los ya existentes. Si se desea modificar la forma de la figura tridimensional se recomienda leer la parte correspondiente en el manual tcnico.
	
+--------------- Directory: C:\LENGUAJE\PROLOG\*. --------------+
| CARA           REVOL          X              XYZ              |
| ..\            ANSWERS\       EXAMPLES\      PIE\             |
| PROGRAMS\      REFEXAMP\                                      |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------------------------------------------------------+

	La segunda opcin es propiamente el visualizador. Cuando se elige aparece una ventana parecida a la de arriba donde se puede elegir el archivo (sin extensin) que se quiere visualizar. Uno puede salir de la ventana sin elegir y sin visualizar nada con ESC. Si se elige un archivo entonces el sistema entrar en modo grfico y se dibujar la representacin con puntos a 45 con la vista XYZ y con el marco encendido. En este modo grfico se pueden dar los siguientes comandos:

	1        Vista XYZ
	2        Vista XZY
	3        Vista YXZ
	7        Vista YZX
	8        Vista ZXY
	9        Vista ZYX
	x        Vista YZ
	y        Vista XZ
	z        Vista XY
	+        Incrementa un Grado el ngulo de vista
	-        Decrementa un Grado el ngulo de vista
	*        Incrementa 10 Grados el ngulo de vista
	/        Decrementa 10 Grados el ngulo de vista
	5        Prende y Apaga el Marco
	.        Une los puntos con lneas (til para "genera()")
	,        Une los puntos con tringulos (til para "generar()")
	ESC      Sale al Men

	La misma lista puede ser vista dentro del visualizador si se oprime F1.

Explicacin de las Vistas y del ngulo de vista:

	Ya que el programa haya leido los puntos del archivo y tenga las coordenadas en la memoria lo nico que le falta hacer es "aplanarlas" para poder graficarlas en la pantalla (bidimensionalmente). Se pude decir que las coordenadas X y Y pasan "tal cual" siendo nicamente "movidas" por la coordenada Z. Ms propiamente por la proyeccin de la coordenada Z en los ejes X y Y. Esta proyeccin depende del ngulo de vista del observador. As que se puede decir que el programa "mueve" los puntos X y Y tanto como Z y el ngulo de vista lo especifiquen. Por otra parte es muy fcil rotar los ejes; digamos que tenemos la Vista XYZ, esto significara que en la horizontal tendramos a X, en la vertical a Y y en la profundidad a Z. Asi:
	
	       horizontal          vertical         profundidad
	XYZ 	   X		      Y			 Z
	XZY 	   X		      Z			 Y
	YXZ 	   Y		      X			 Z
	YZX 	   Y		      Z			 X
	ZXY 	   Z		      X			 Y
	ZYX 	   Z		      Y			 X
	YZ	   Y		      Z
	XZ         X		      Z
	XY         X		      Y

    Source: geocities.com/v.iniestra/apuntes/pro_log

               ( geocities.com/v.iniestra/apuntes)                   ( geocities.com/v.iniestra)