## Documentación Tarea Nº1
Diseño y Programación Orientados a Objetos

##

Profesor: Agustín González V. | Autor: Thomas Genet ROL:2590113-4

Nombre: Dibujando y Manipulando Figuras Geométricas

Descripción: Esta tarea consiste en crear una aplicación gráfica para la creación y la manipulación de formas geométricas usando el lenguaje Java. La aplicación debe contener una barra de menú con las opciones Creación de figuras y Manipulación de figuras. Se permitirá al utilizador crear líneas, triángulos, rectángulos, y círculos, y ejercitar varias manipulaciones sobre cada forma individual. Las manipulaciones posibles son la rotación, el desplazamiento y el escalamiento.

Funcionamiento: Al ejecutar el programa aparece la interfaz grafica con un menú y el pizarrón blanco. El menú contiene dos opciones: Crear y Manipular. Bajo la opción Crear tenemos las varias figuras que se pueden dibujar: Líneas, Triángulos, Rectángulos, y Círculos. Bajo la opción Manipular aparecen las manipulaciones que se pueden aplicar a las figuras: Rotar, Escalar, Trasladar. Después de haber seleccionado una figura en el menú Crear, el utilizador la dibuja usando el Mouse:

- Para el Rectángulo, se fija la primera esquina al hacer clic sobre la pantalla y después se extiende el Rectángulo al "draguear" el Mouse.
- Para el Círculo, se fija el centro al hacer clic sobre la pantalla y después al "draguear" el Mouse se extiende el radio.
- Para la Línea se fija la primera extremidad al hacer clic sobre la pantalla, luego se extiende la Línea "dragueando" el Mouse.
- Para el Triángulo, se fija la primera esquina al hacer clic sobre la pantalla, luego se extiende el primer lado "dragueando" el Mouse. La tercera esquina se fija al hacer clic otra vez sobre la pantalla, los dos otros lados se extienden automáticamente.

Para manipular cualquiera de las figuras previamente creadas, es necesario seleccionar la figura a manipular. Para eso, es preciso presionar la tecla Escap para quitar la herramienta de Creación, y luego hacer clic sobre la figura a seleccionar. Al seleccionar una figura aparecen cuadraditos verdes a cada una de sus esquinas. Se puede luego seleccionar una transformación a aplicar a la figura seleccionada:

- Para trasladar la figura, se requiere presionar el Mouse adentro de un cuadradito verde de la figura seleccionada y arrastrarla a la posición deseada.
- Para rotar la figura, se requiere hacer clic sobre la pantalla para fijar el centro de la rotación. Aparece una cruz para visualizar el centro de la rotación. Luego, "dragueando" el Mouse sobre la pantalla se modifica el ángulo de rotación y se rota la figura.
- Para escalar a figura, se requiere hacer clic sobre la pantalla para fijar el centro del escalamiento. Aparece una cruz para visualizar el centro de la rotación. Luego, "dragueando" el Mouse sobre la pantalla se modifica el factor de escalamiento y se escala la figura.

Basta presionar la tecla ESC para quitar la herramienta de Manipulación y poder seleccionar una otra figura.

Diagrama de Clase:

Problemas enfrentados: Una dificultad que me encontré fue la dificultad de presionar el Mouse exactamente sobre una línea de la figura para seleccionarla. Para solucionar éste problema, cambié el test que revisa si una figura esta seleccionada al presionar el Mouse. La figura esta seleccionada no solamente si el punto donde esta el Mouse pertenece a la línea, pero también si pertenece a una banda de dos píxeles ubicada de cada lado de la línea. De ésta manera, se vuelve más fácil seleccionar una figura. Para deseleccionarla, basta con hacer clic con el Mouse en otra parte de la pantalla donde no hay figuras.