Title: EL PAQUETE OSP OPEN SOURCE PHYSICS
1EL PAQUETEOSPOPEN SOURCE PHYSICS
2ÍNDICE VISUAL DEL OSP DISPLAY Y CONTROLES
package org.opensourcephysics.controls
package org.opensourcephysics.display
3ÍNDICE VISUAL DEL OSP VISUALIZACIÓN CIENTÍFICA
2D
package org.opensourcephysics.display2d
4OSP Solución de Ecuaciones Diferenciales
package org.opensourcephysics.numerics
5OSP Simulación en 3D
package org.opensourcephysics.display3d
6MODELO MVC
Modelo Implementación físico-Matemática Visualiz
ación Despliegue de gráficas , tablas,
animaciones Control Entrada de valores, parar,
iniciar, resetiar,
7EJEMPLOS
8USEMOS EL PAQUETE OSP
9DrawingFrame y DrawingPanel
Ventajas de DrawingPanel Escalable, doble
buffer, coordenadas como estamos habituados,
indicador de posición, con menú para con
opciones para guardar e
imprimir,
Ejecutar el programa SimulacionOSP_1.java
10Interface Drawable
Para dibujar sobre el PanelDrawing, los objetos
deben ser Drawables, es decir deben
haber implementado la interfaz Drawable
public interface Drawable public void
draw(DrawingPanel panel, Graphics g) Para
pegarsen en el panel estos objetos Drawables se
utiliza el método público addDrawable ( objero
drawable) de DrawingPanel. Entre los objetos que
trae el paquete OSP que son Drawables están el
Circle (Círculo) y el Arrow (Flecha). Estos
pertenecen al paquete org.opensourcephysics.displa
y. El usuario puede extender el número de estos
objetos de acuerdo a sus necesidades (agregar Más
objetos Drawables, como resortes, multímetros,
relojes, ) Ejecutar el programa
SimulacionOSP_2.java
11Interface Drawable
Con el OSP podemos dibujar en el DrawingPanel
figuras (Shape) de java 2D. Para ello se Esto se
hace a través de la clase DrawableShape. Por
ejemplo para dibujar un cuadrado Shape rnew
Rectangle2D.Double(-0.5,-0.5,1,1) DrawableShape
cuadrado new DrawableShape(r,-3,-4) A
través de la clase DrawableShape la figura de
java 2D se hace dibujable (Drawable) en el
DrawingPanel del OSP. Ejecutar el programa
SimulacionOSP_3.java Además podemos aplicar las
transformaciones afines de java 2D, como por
ejemplo la rotación. Ejecutar el programa
SimulacionOSP_4.java
12Animación
Para darle animación a una aplicación ( o
applet), implementamos la interface
Runnable. Debemos por tanto crear un hilo para
que la administre, y debemos implementar el
único método que posee Runnable, es decir el
debemos implementar el método run(). De no
ser así la clase nos queda abstracta. Ejecutar
el programa SimulacionOSP_5.java Podemos
utilizar la interfaz gráfica que proporciona el
OSP para controlar la animación. Para ello se
debe implementar la interface Animation y crear
un objeto Control, ambos del OSP (paquete
org.opensourcephysics.control). Por tanto se debe
asegurar de Implementar los seis métodos de la
interface Animation public void
startAnimation() public void stoptAnimation() pu
blic void initializeAnimation() public void
resetAnimation() public void stepAnimation() pub
lic void setControl(Control control) Ejecutar
el programa SimulacionOSP_6.java
13Graficando con OSP
Para construir una simple gráfica podemos
instanciar un Dataset del OSP. A este Le podemos
agregar ejes (instanciando XAxis y YAxis ).
Todos estos objetos Son Drawables por lo que los
podemos agregar a un DrawingPanel Se pueden
ensayar diferentes presentaciones gráficas.
dataset.setMarkerShape(Dataset.CIRCLE) //dataset.
setMarkerShape(Dataset.AREA) //dataset.setMarkerS
hape(Dataset.PIXEL) //dataset.setMarkerShape(Data
set.BAR) //dataset.setMarkerShape(Dataset.POST)
Ejecutar el programa EjemploDataset.java
14Graficando con OSP
Para construir gráficas científicas un poco más
complejas, instanciamos a PlottingPanel del OSP.
Podemos darle presentación de gráficas xy,
grá- ficas semilogarítmicas y gráficas
logarítmicas. Tienen la ventaja de
poderse Autoescalar e incluso animarse
Ejecutar el programa EjemploPlottingPanel.java
Instanciando además a Datamanager se puden
manejar varios gráficos a la vez. Ejecutar el
programa DatasetManagerApo.java Ejecute además
los siguientes programas HistogramTestApp.java A
nimationPlotterApp .java ScatterPlotApp.java Parse
rTestApp.java
15Desplegando tablas con OSP
Para desplegar tablas con el OSP instanciamos
DataTableFrame y DataTable Ejecutar los
siguientes programas DataTableTestApp.java Da
tasetCollectionExampleApp.java
16EL PAQUETEOSPOPEN SOURCE PHYSICS
ECUACIONES DIFERENCIALES
17OSP Solución de Ecuaciones Diferenciales
package org.opensourcephysics.numerics
18ED. DE PRIMER ORDEN AUTÓNOMAS
En general podremos escribir una ecuación
diferencial de primer orden como sigue
Si no hay dependencia explícita de la variable
independiente , la ecuación diferencial se
denomina autónoma
El objetivo es obtener x(t) para el intervalo
0lttlttfinal Para esto, dados xi en ti ,
encontramos xi1 en ti1 ti?t Empezamos con
x0 x(0) y obtenemos x1 x(?t). Obtenido x1 ,
el proceso se repite para encontrar x2 , hasta
llegar a tfinal. Para sistemas de ecuaciones
de ordenes superiores, se convertirán en sistemas
de orden 1.
19ED. DE PRIMER ORDEN AUTÓNOMAS
En general un sistema E.D autónomas de primer
orden con n variables puede ser escrito
Podemos pensar que las variables xi son
componentes de un vector de estado, por lo que
el sistema se puede escribir como
O en forma más compacta
Cada ecuación específica la razón de cambio de
una variable en términos de las otras variables.
20ED. DE PRIMER ORDEN AUTÓNOMAS
Otra convención que emplearemos, es que para
describir el estado del sistema la velocidad la
ubicaremos después de la posición. Así por
ejemplo, el estado (variables) dinámico para dos
partículas interactuando debe ser guardado en un
arreglo como el que sigue
21LAS INTERFACES ODE y ODESolver
- Interface ODE
- ODE contiene dos métodos. getState y getRate
- package org.opensourcephysics.numerics
- public interface ODE
- public double getState()
- public void getrate(double state,
double rate) -
- El método getState retorna el arreglo que
describe el estado -
El método getRate evalúa las derivadas
almacenándolas en un arreglo
22MODELO MVC
Modelo Implementación físico-Matemática Visualiz
ación Despliegue de gráficas , tablas,
animaciones Control Entrada de valores, parar,
iniciar, resetiar,
23LAS INTERFACES ODE y ODESolver
- Interface ODESolver
- ODESolver contiene cuatro métodos
- package org.opensourcephysics.numerics
- public interface ODESolver
- public void initialize(double stepSize)
- public double step()
- public void setSepSize(double stepSize)
- public double getStepSize()
-
- Todos los métodos numéricos del OSP empleados
para resolver las ED implementan esta interface. - Como ejemplo, resolvamos el sistema físico que
hemos venido planteando el oscilador armónico - amortiguado.
- Oscilador armónico amortiguado
24LAS INTERFACES ODE y ODESolver
- Otro ejemplo
- Superposición Ortogonal de dos M.A.S
25EL PAQUETEOSPOPEN SOURCE PHYSICSDisplay3D
SIMULACIONES EN 3D
26DrawingFrame y DrawingPanel
Ventajas de DrawingPaneL3D Zoom, rotación de la
escena, traslación de la escena doble buffer
Es necesario el java 3D además del jsdk