Diseño Y Programación Orientado a Objetos
Tarea 3 Primer Semestre 2006
Applets: Manipulación de Formas Geométricas
Alumno: Diego González
Rol: 2121011-0

## I.Objetivos:

1.Ejercitar la generación automática de documentación usando javadoc.
2.Ejercitar la creación de Applets
3.Generar programas que sigan cierto estándar en su formato o estilo.

## II.Archivos contenidos en "t3_diego.gonzalez.zip"

Se ha decidido no extender este archivo text pues para esto se genero la documentacion en el codigo, seria redundante incluir en dos lados los mismos datos Asi usted ejecutando javadoc *.java en la carpeta con los archivos generara automaticamente la documentacion insertada en los codigos. Sólo se pondra un acceso a lo codigos y una breve explicacion

Lo que si se ha hecho es agregar un link a los codigos

- Circulo.java Clase circulo que otorga todo lo necesario para crear y modificar circulos
- CrearCirculoHandler.java Clase que maneja todo lo necesario para crear un circulo por pantalla
- CrearLineaHandler.java Clase que maneja todo lo necesario para crear una linea por pantalla
- CrearRectanguloHandler.java Clase que maneja todo lo necesario para crear un rectangulo por pantalla
- CrearTrianguloHandler.javaClase que maneja todo lo necesario para crear un triangulo por pantalla
- Cruz.java Clase que maneja todo lo necesario para crear una cruz(que es utilizada como referencia para rotar y escalar
- Dibujo.java Clase que maneja todo lo necesario para dibujar y manipular figuras
- EditorApplet.java Clase principal que incluye main para probar el editorApplet
- EditorFrame.java Clase que genera el frame para insertar el contenido que permitira manipular por pantalla las acciones
- EscalarHandler.java Clase que otorga lo necesario para ejecutar la accion de escalar por pantalla
- Forma.java Clase abstracta la cual es una clase base para todas las figuras
- Linea.java Clase linea que otorga todo lo necesario para crear y modificar lineas
- MiMenuBarApplet.java Clase que implementa el menuApplet necesario para ejecutar las acciones sobre el panel
- Rectangulo.java Clase linea que otorga todo lo necesario para crear y modificar rectangulo
- RotarHandler.javaEscalarHandler.java Clase que otorga lo necesario para ejecutar la accion de rotar por pantalla
- TrasladarHandler.javaEscalarHandler.java Clase que otorga lo necesario para ejecutar la accion de trasladar por pantalla
- Triangulo.java Clase linea que otorga todo lo necesario para crear y modificar triangulo
- PROGRAMA PARA PROBAR En este enlace puedes probar el programa una vez compilado el codigo(basta efectuar make en la carpeta con el programa)

## III. Como ejecutar el programa

Se ha generado un archivo makefile que incluyen todos los codigos necesarios para hacer correr el Editor, junto a esto todas las directivas necesarias para compilar el programa, con tan sólo poner make en la linea de comandos de linux.
Luego de esto se ha creado un archivo html que prueba el programa, solo basta con hacer doble click en EditorApplet.html para hacer correr el programa que prueba el sistema
Para acceder a la documentacion debes poner javadoc *.java

#### Como observaciones de ejecucion podemos explicar que

- Rotar: Para rotar apareceran unos cuadrados en las figuras al momento de elegir esta accion, una vez hecho esto debes escoger un punto cualquiera respecto al que se rotara, luego se presiona sobre uno de los cuadrados de la figura(que se volvera negro una vez se presione) que quiera mover y se arrastra para rotar, al soltar desapareceran los cuadrados y se habra rotado.
  Ahora tambien es posible rotar un grupo de formas para lo cual debes presionar el mouse en un punto de la pantalla arrastrarlo generando una zona en la que aquellas figuras se encuentren dentro de esta(cuyas formas se pondran negras una vez ingresen en la zona), seran aquellas figuras que se rotaran. El punto medio de la zona rectangular generada por el mouse será el punto de rotación. Para rotar una vez lo anterior basta con marcar en cualquier punto para girar el conjunto de formas.
- Escalar: Para escalar apareceran unos cuadrados en las figuras al momento de elegir esta accion, una vez hecho esto debes escoger un punto cualquiera respecto al que se escalara, luego se presiona sobre uno de los cuadrados de la figura que quiera escalar(el cual se tornaran rojos todos los cuadrados de la forma) y se arrastra para escalar, al soltar desapareceran los cuadrados y se habra escalado
  Ahora tambien es posible escalar un grupo de formas para lo cual debes presionar el mouse en un punto de la pantalla arrastrarlo generando una zona en la que aquellas figuras se encuentren dentro de esta(cuyas formas se pondran negras una vez ingresen en la zona), seran aquellas figuras que se escalaran. El punto medio de la zona rectangular generada por el mouse será el punto de escalación. Para escalar una vez lo anterior basta con marcar en cualquier punto para escalar el conjunto de formas.
- Trasladar: Para trasladar sólo se debe marcar en algun cuadrado de la figura que apareceran al momento de elegir esta accion(al momento de hacer esto los cuadrados de la figura se tornarán negro), luego arrastre el mouse hasta la posicion que desea trasladar despues de esto al soltar el mouse los cuadrados desapareceran y habra trasladado
  Ahora tambien es posible trasladar un grupo de formas para lo cual debes presionar el mouse en un punto de la pantalla arrastrarlo generando una zona en la que aquellas figuras se encuentren dentro de esta(cuyas formas se pondran negras una vez ingresen en la zona), seran aquellas figuras que se trasladaran. Para trasladar una vez lo anterior basta con marcar en cualquier punto para trasladar el conjunto de formas.

## IV. Observaciones

Por ultimo dos observaciones a tener presente para probar el sistema
1.-El modelo UML generado es demasiado complejo como para incluirlo dentro de una foto(aqui esta la muestra) por lo cual se adjunta el proyecto generado por jgrasp en el cual es posible observar el modelo del sistema
2.-Se efectuo el chequeo de estilo y se corrigio el codigo acorde a las indicaciones