Diseño y
Programación Orientados a Objetos
1er. Sem 2014
Tarea 3: Applet para Simulación
Bolas, Puntos fijos, Resortes y Osciladores como Objetos de Software
Recomendación: Lea detenidamente la tarea. Si algo no lo entiende,
consulte en clases. Si es preciso, se incorporarán aclaraciones al final.
Esta tarea tiene por objetivos:
* Ejercitar la creación de archivos .jar
* Ejercitar la reproducción de sonidos en Java.
* Ejercitar el paso de parámetros desde un archivo html a un applet.
Descripción General
Básicamente ahora usted podrá correr las simulaciones a través de
Internet usando un Applet. Además de las bolas, puntos fijos y resortes de
la tarea 2, usted deberá incluir en esta tarea Osciladores (Oscillator) como
el de la pregunta del certamen parcial.
La opción "My scenario" debe cargar parcialmente la configuración
indicada en el html que contiene all Applet.
La especificación del escenario debe seguir una sintaxis del estilo:
<applet ..... lo que corresponda .....>
<param name="title" value="Physics Lab: 3 Experiencing with
oscillations"/>
<param name="fixedHookNum" value="1"/>
<param name="fixedHook.1" value="poner aquí sus atributos separados por
;"/>
<param name="ballNum" value="3"/>
<param name="ball.1" value="poner aquí sus atributos separados por
;"/>
<param name="ball.2" value="poner aquí sus atributos separados por
;"/>
<param name="ball.3" value="poner aquí sus atributos separados por
;"/>
<param name="oscillatorNum" value="1"/>
<param name="oscillator.1" value="poner aquí sus atributos separados por
;"/>
<param name="deltaTime" value="0.001"/>
<param name="refreshTime" value="0.03"/>
<param name="maxPlotTime" value="30"/>
</applet>
Los resortes deben ser incorporados usando la interfaz gráfica.
Ciertamente toda la configuración puede ser incorporada usando la interfaz
gráfica. Además se desea que la colisión de bolas genere un sonido corto.
El Applet además muestra tres gráficos. Uno muestra la energía
potencial total del sistema (resortes), otro la energía total cinética
(todas la bolas), y el tercero la energía mecánica total; es decir, suma de
ambos previos.
Trabajo a desarrollar
Desde un punto de vista de la simulación, esta tarea tiene la misma
descripción que la tarea 2.
El Applet debe dividir el área de despliegue en con un JSplitPane para
separar la zona de simulación del gráfico. A la izquierda debe verse la
simulación. El gráfico debe mostrar sólo el últimos N segundos de la
simulación, donde N es un parámetro especificado en el HTML (default = 30
segundos). El nombre de este parámetro en el html es "maxPlotTime".
Bajo el menú MyWorld, incorpore la opción "Reset Plot". Ésta inicia el
gráfico desde cero hasta maxPlotTime segundos. Se descarta la historia
pasada.
Prepare sus archivos para incluir una clase PhysicsLab que permita ejecutar
su solución como aplicación y la clase PhysicsLabApplet que lo haga como
applet. Para el caso de PhysicsLab use los parámetros por omisión (no serán
especificados por ningún html).
Resultados Esperados de su Grupo
Entregue todo lo indicado en Normas de
Entrega de Tareas.
Su makefile
debe ofrecer las siguientes opciones:
$ make jar
Debe preparar un archivo PhysicsLab.jar que incluya todo lo requerido para
la ejecución de su applet.
Incluya un archivo PhysicsLab.html que permita correr su applet vía browser.
Este archivo también se usa en opción:
$ make runApplet
Para probar su applet usando appletviewer.
Además de correr como applet, su trabajo debe permitir su ejecución como
aplicación usando:
$ make run
o bien usando:
$ java -jar PhysicsLab.jar
Ayudas
En lugar de JFrame considere el uso de JInternalFframe.
Puede ver mi solución, tal vez parcial, de la
tarea 2.
Más ayuda será provista según surjan consultas de parte de ustedes.
Nota
Al usar oscilador se debería apreciar variaciones de la energía total.