Você está na página 1de 81

Easy Java Simulations

EJS
March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

PDF2You: http://www.um.es/fem/EjsWiki/index.php/Main/PrintEs

nada

EJS

Contents
1 Introduction and getting started 1.1 HomePage (w) . . . . . . . . . . . . . . Acerca de Easy Java Simulations . . . . En esta Wiki . . . . . . . . . . . . . . Contador de visitas . . . . . . . . . . . Ayude a documentar EJS! . . . . . . . 1.2 Foreword (w) . . . . . . . . . . . . . . 1.3 WhatIsEJS? (w) . . . . . . . . . . . . . 1.4 Installation (w) . . . . . . . . . . . . . . Instalacin multi-idioma . . . . . . . . Aspecto grco de la interfaz de usuario 1.5 Download (w) . . . . . . . . . . . . . . Descargar . . . . . . . . . . . . . . . . Instalar . . . . . . . . . . . . . . . . . EJS es de cdigo abierto . . . . . . . . 1.6 EJSWorkspaces (w) . . . . . . . . . . . 1.7 RunningEjs (w) . . . . . . . . . . . . . 1.8 Console (w) . . . . . . . . . . . . . . . 1.9 ConsoleBasicOptions (w) . . . . . . . . 1.10 ConsoleAdvancedOptions (w) . . . . . . 1.11 ConsoleOutputArea (w) . . . . . . . . . 1.12 EJSUserInterface (w) . . . . . . . . . . The panels in EJS 2.1 InformationPanel (w) . . . . . . . . . 2.2 Description (w) . . . . . . . . . . . . 2.3 Model (w) . . . . . . . . . . . . . . . 2.4 ModelVariables (w) . . . . . . . . . . 2.5 ModelInitialization (w) . . . . . . . . 2.6 ModelODEEditor (w) . . . . . . . . . 2.7 ModelEvents (w) . . . . . . . . . . . 2.8 ModelFixedRelations (w) . . . . . . . 2.9 ModelCustomCode (w) . . . . . . . . 2.10 PredenedMethods (w) . . . . . . . . 2.11 View (w) . . . . . . . . . . . . . . . . 2.12 ElementsConnecting (w) . . . . . . . 2.13 ElementsConnectingToExpressions (w) 2.14 Elements (w) . . . . . . . . . . . . . . 2.15 ElementsInterface (w) . . . . . . . . . 2.16 Elements2DDrawables (w) . . . . . . 2.17 Elements3DDrawables (w) . . . . . . Deployment 3.1 Deployment (w) . . . . . . . . . . 3.2 DeploymentSimulationsMenu (w) Opciones comunes: . . . . . . . . Tareas de alto nivel: . . . . . . . Francisco Esquembre et al. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 1 1 1 2 3 4 4 5 5 5 6 6 7 8 10 10 11 12 13 15 15 15 17 17 19 20 20 21 22 23 23 24 24 24 25 25 26 27 27 28 29 29

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

March 11, 2009, at 11:00 AM

ii 3.3 4

EJS Opciones adicionales cuando se ejecuta como chero JAR: 30 DeploymentLocalization (w) . . . . . . . . . . . . . . . . 30

Appendices 33 4.1 ConditionsOfUse (w) . . . . . . . . . . . . . . . . . . . . 33 4.2 Credits (w) . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Elements reference 5.1 Main.Elements (w) . . . . . . . . . . . . . . 5.2 Main.Elements2DDrawables (w) . . . . . . . 5.3 Main.Elements3DDrawables (w) . . . . . . . 5.4 Main.ElementsAboutColors (w) . . . . . . . . 5.5 Main.ElementsAboutLayout (w) . . . . . . . 5.6 Main.ElementsAboutParticlePositions (w) . . 5.7 Main.ElementsAboutParticleStyles (w) . . . . 5.8 Main.ElementsAboutTransforms (w) . . . . . 5.9 Main.ElementsAnalyticCurve (w) . . . . . . . 5.10 Main.ElementsAnalyticCurve2D (w) . . . . . 5.11 Main.ElementsAnalyticCurve3D (w) . . . . . 5.12 Main.ElementsAnalyticScalarField2D (w) . . 5.13 Main.ElementsAnalyticSurface3D (w) . . . . 5.14 Main.ElementsAnalyticVectorField2D (w) . . 5.15 Main.ElementsArrayPanel (w) . . . . . . . . 5.16 Main.ElementsArrow (w) . . . . . . . . . . . 5.17 Main.ElementsArrow2D (w) . . . . . . . . . 5.18 Main.ElementsArrow3D (w) . . . . . . . . . 5.19 Main.ElementsArrowSet2D (w) . . . . . . . . 5.20 Main.ElementsArrowSet3D (w) . . . . . . . . 5.21 Main.ElementsBar (w) . . . . . . . . . . . . 5.22 Main.ElementsBasic2D (w) . . . . . . . . . . 5.23 Main.ElementsBasic3DDrawables (w) . . . . 5.24 Main.ElementsBox3D (w) . . . . . . . . . . . 5.25 Main.ElementsBoxSet3D (w) . . . . . . . . . 5.26 Main.ElementsButton (w) . . . . . . . . . . . 5.27 Main.ElementsButtonsAndDecoration (w) . . 5.28 Main.ElementsByteRaster (w) . . . . . . . . 5.29 Main.ElementsCamImage (w) . . . . . . . . . 5.30 Main.ElementsCellLattice (w) . . . . . . . . 5.31 Main.ElementsCheckBox (w) . . . . . . . . . 5.32 Main.ElementsCheckBoxMenuItem (w) . . . 5.33 Main.ElementsCircle3D (w) . . . . . . . . . . 5.34 Main.ElementsCircleSet3D (w) . . . . . . . . 5.35 Main.ElementsComboBox (w) . . . . . . . . 5.36 Main.ElementsComplexDataset (w) . . . . . . 5.37 Main.ElementsCone3D (w) . . . . . . . . . . 5.38 Main.ElementsConeSet3D (w) . . . . . . . . 5.39 Main.ElementsConnecting (w) . . . . . . . . 5.40 Main.ElementsConnectingToExpressions (w) 5.41 Main.ElementsContainers (w) . . . . . . . . . March 11, 2009, at 11:00 AM 35 35 35 35 36 36 37 37 38 38 38 38 38 38 38 38 38 41 43 43 43 43 43 44 44 44 45 45 45 45 45 45 45 46 46 46 46 46 46 46 47 47

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Francisco Esquembre et al.

EJS 5.42 5.43 5.44 5.45 5.46 5.47 5.48 5.49 5.50 5.51 5.52 5.53 5.54 5.55 5.56 5.57 5.58 5.59 5.60 5.61 5.62 5.63 5.64 5.65 5.66 5.67 5.68 5.69 5.70 5.71 5.72 5.73 5.74 5.75 5.76 5.77 5.78 5.79 5.80 5.81 5.82 5.83 5.84 5.85 5.86 5.87 5.88 5.89 5.90 Main.ElementsCursor (w) . . . . . . . . . Main.ElementsCylinder3D (w) . . . . . . Main.ElementsCylinderSet3D (w) . . . . Main.ElementsDataRaster (w) . . . . . . Main.ElementsDataTable (w) . . . . . . . Main.ElementsDialog (w) . . . . . . . . . Main.ElementsDisplay3DPanel (w) . . . . Main.ElementsDrawingPanel (w) . . . . . Main.ElementsEllipsoid3D (w) . . . . . . Main.ElementsEllipsoidSet3D (w) . . . . Main.ElementsEquation (w) . . . . . . . . Main.ElementsFields2D (w) . . . . . . . . Main.ElementsFrame (w) . . . . . . . . . Main.ElementsFunction (w) . . . . . . . . Main.ElementsGroup2D (w) . . . . . . . Main.ElementsGroup3D (w) . . . . . . . Main.ElementsHistogram (w) . . . . . . . Main.ElementsImage (w) . . . . . . . . . Main.ElementsImage2D (w) . . . . . . . Main.ElementsImage3D (w) . . . . . . . Main.ElementsImageSet2D (w) . . . . . . Main.ElementsImageSet3D (w) . . . . . . Main.ElementsInputAndOutput (w) . . . . Main.ElementsInterface (w) . . . . . . . . Main.ElementsLabel (w) . . . . . . . . . Main.ElementsLattice (w) . . . . . . . . . Main.ElementsMenu (w) . . . . . . . . . Main.ElementsMenuBar (w) . . . . . . . Main.ElementsMenuElements (w) . . . . Main.ElementsMenuItem (w) . . . . . . . Main.ElementsOther3D (w) . . . . . . . . Main.ElementsPanel (w) . . . . . . . . . Main.ElementsParsedField (w) . . . . . . Main.ElementsParticle (w) . . . . . . . . Main.ElementsParticleSet (w) . . . . . . . Main.ElementsPasswordField (w) . . . . . Main.ElementsPipe (w) . . . . . . . . . . Main.ElementsPlane3D (w) . . . . . . . . Main.ElementsPlaneSet3D (w) . . . . . . Main.ElementsPlottingPanel (w) . . . . . Main.ElementsPoints (w) . . . . . . . . . Main.ElementsPoints3D (w) . . . . . . . Main.ElementsPolygon (w) . . . . . . . . Main.ElementsPolygon2D (w) . . . . . . Main.ElementsPolygon3D (w) . . . . . . Main.ElementsPolygonSet2D (w) . . . . . Main.ElementsPolygonSet3D (w) . . . . . Main.ElementsRadioButton (w) . . . . . . Main.ElementsRadioButtonMenuItem (w) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 48 48 48 48 48 48 48 48 49 49 49 49 49 49 49 49 49 52 54 54 54 54 54 55 55 55 55 55 56 56 56 56 56 58 58 58 58 58 58 58 58 58 61 61 61 61 61 61

iii

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

iv 5.91 5.92 5.93 5.94 5.95 5.96 5.97 5.98 5.99 5.100 5.101 5.102 5.103 5.104 5.105 5.106 5.107 5.108 5.109 5.110 5.111 5.112 5.113 5.114 5.115 5.116 5.117 5.118 5.119 5.120 5.121 5.122 5.123 5.124 5.125 5.126 5.127 5.128 5.129 5.130 5.131 5.132 5.133 5.134 5.135 5.136 5.137 5.138 5.139 Main.ElementsRecentChanges (w) . . . Main.ElementsScalarField2D (w) . . . . Main.ElementsSegment2D (w) . . . . . Main.ElementsSegment3D (w) . . . . . Main.ElementsSegmentSet2D (w) . . . Main.ElementsSegmentSet3D (w) . . . Main.ElementsSeparator (w) . . . . . . Main.ElementsSet (w) . . . . . . . . . . Main.ElementsSets3D (w) . . . . . . . . Main.ElementsShape2D (w) . . . . . . . Main.ElementsShapeSet2D (w) . . . . . Main.ElementsSimpleVectorField2D (w) Main.ElementsSimpleVectorField3D (w) Main.ElementsSiteLattice (w) . . . . . . Main.ElementsSlider (w) . . . . . . . . Main.ElementsSoundOn (w) . . . . . . Main.ElementsSphere3D (w) . . . . . . Main.ElementsSphereSet3D (w) . . . . Main.ElementsSplitPanel (w) . . . . . . Main.ElementsSpring (w) . . . . . . . . Main.ElementsSpring2D (w) . . . . . . Main.ElementsSpring3D (w) . . . . . . Main.ElementsSpringSet2D (w) . . . . . Main.ElementsSpringSet3D (w) . . . . . Main.ElementsSurface3D (w) . . . . . . Main.ElementsSurfaceSet3D (w) . . . . Main.ElementsTabbedPanel (w) . . . . . Main.ElementsTank (w) . . . . . . . . . Main.ElementsText (w) . . . . . . . . . Main.ElementsText2D (w) . . . . . . . Main.ElementsText3D (w) . . . . . . . Main.ElementsTextArea (w) . . . . . . Main.ElementsTextField (w) . . . . . . Main.ElementsTextSet (w) . . . . . . . Main.ElementsTextSet2D (w) . . . . . . Main.ElementsTextSet3D (w) . . . . . . Main.ElementsTile3D (w) . . . . . . . . Main.ElementsToolBar (w) . . . . . . . Main.ElementsTrace (w) . . . . . . . . Main.ElementsTraceSet (w) . . . . . . . Main.ElementsTrail2D (w) . . . . . . . Main.ElementsTrail3D (w) . . . . . . . Main.ElementsTrailSet2D (w) . . . . . . Main.ElementsTrailSet3D (w) . . . . . . Main.ElementsTwoStateButton (w) . . . Main.ElementsUserDened (w) . . . . . Main.ElementsValve (w) . . . . . . . . Main.ElementsVideo (w) . . . . . . . . Main.ElementsWebCam (w) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

EJS 61 62 62 64 64 64 64 64 64 64 64 64 64 64 65 65 65 65 65 65 67 69 69 69 69 69 69 69 69 71 73 73 73 73 73 73 73 73 73 73 74 74 74 74 74 74 75 75 75

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

1
1.1

Introduction and getting started


HomePage (w)

Bienvenido/a a las pginas Wiki de Easy Java Simulations!


Acerca de Easy Java Simulations

Easy Java Simulations (simulaciones sencillas en Java), tambin conocido como EJS o Ejs, es una herramienta de autor creada en Java que ayuda a no programadores a crear simulaciones interactivas en Java, habitualmente con nes de enseanza o aprendizaje. EJS ha sido creado por Francisco Esquembre (w) y es parte del proyecto Open Source Physics 1 (Fsica de cdigo abierto).
En esta Wiki

Encontrar informacin acerca de: Qu es Easy Java Simulations. Cmo crear simulaciones con EJS. Cmo distribuir simulaciones creadas con EJS. Referencia de elementos de la vista de EJS.

Contador de visitas

Esta pgina ha sido visitada 88 veces desde Septiembre de 2007. El nmero total de visitas a este servidor es de 131019.
Ayude a documentar EJS!

Si sigue usted un enlace en esta Wiki y aparece una pantalla que dice Password required y le pide una palabra de paso y una clave, esto signica que ha intentado visitar una pgina que todava no existe. Todas las pginas de esta Wiki son de libre acceso para lectura (aunque estn protegidas con clave para escritura.) Por otra parte, si aparece una pgina en ingls, esto signica que esta pgina no ha sido traducida todava.
1

www.opensourcephysics.org

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

EJS Si tiene una razonable soltura en el uso de EJS y desea ayudar a mejorar esta documentacin, enve un correo electrnico a fem@um.es con el n de obtener una clave de acceso para editar pginas existentes de esta Wiki o aadir otras nuevas.

1.2

Foreword (w)

Prembulo
Las simulaciones juegan un papel cada vez ms importante en la forma en que enseamos o hacemos ciencia. Esto es especialmente cierto en la Educacin, campo en el que los computadores se usan frecuentemente con el n de hacer las clases ms atractivas a los estudiantes y para facilitar una comprensin ms profunda de aquello que se ensea. Sin embargo, no puede armarse todava que las simulaciones por computador sean usadas por la mayora de nuestros docentes. En muchos casos, esto es debido a que los profesores se resisten a utilizar una tecnologa que no comprenden o controlan con seguridad. En muchos otros, a que no encuentran un producto que satisfaga completamente sus necesidades educacionales. Una buena solucin a ambos problemas es ayudar a que los profesores creen sus propias simulaciones. Nuestra experiencia muestra que, al crear una simulacin, muchos profesores obtienen una nueva perspectiva del fenmeno que estn tratando de explicar, lo que casi siempre incrementa su entusiasmo por el uso de esta tecnologa con sus estudiantes. Una aproximacin alternativa, muy prometedora, es pedir a los estudiantes que creen sus propias simulaciones, involucrndose as en lo que se denomina por algunos investigadores educacionales modelado constructivo. Este enfoque presenta la ventaja de que los estudiantes hagan ciencia de una manera exploratoria y constructiva, cumplindose as varias de las prcticas recomendadas para el trabajo en clase. Crear una simulacin por uno mismo requiere un esfuerzo adicional, sta es la verdad. El punto de partida, y sta es la parte importante, es una comprensin correcta del fenmeno a simular. Pero, adems, es preciso poseer ciertos conocimientos tcnicos para poder expresar el comportamiento del fenmeno en forma de programa de computador. Easy Java Simulations se dirige, precisamente, a resolver este problema. EJS ha sido diseado especcamente para ensear a una amplia audiencia cmo crear simulaciones cientcas en Java, de una forma sencilla y rpida. El sector de audiencia de EJS est formado por estudiantes, profesores e in-

Figure 1. Una simulacin

de un tiro parablico. (w)

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS vestigadores de ciencias que poseen un conocimiento bsico de programacin de computadores, pero que no pueden permitirse la gran cantidad de tiempo necesaria para crear una simulacin grca completa. Son capaces de describir los modelos de los fenmenos de sus respectivas disciplinas en trminos de ecuaciones y algoritmos de un lenguaje de programacin, pero an necesitan un esfuerzo adicional para crear un sosticado interfaz de usuario grco e interactivo, al estilo de las simulaciones y programas educativos que uno encuentra habitualmente en Internet. Con esta situacin de partida, EJS ha sido diseado para permitir a una persona que quiere crear una simulacin, concentrar la mayor parte de su tiempo en escribir y renar los algoritmos del modelo cientco de inters (que es en lo que realmente es experto/a) y dedicar el menor tiempo posible a las tcnicas de programacin. Y, an as, obtener un producto nal independiente, de altas prestaciones y preparado para su uso en Internet. La eleccin de Java como lenguaje de desarrollo se justica por su gran aceptacin por la comunidad internacional de Internet y por el hecho de que est soportado por prcticamente todas las plataformas de software. Esto signica que EJS, y las simulaciones creadas con l, pueden usarse como programas independientes en virtualmente todos los sistemas operativos, o ser distribuidas por Internet y ejecutadas en pginas Web por los navegadores ms conocidos (siempre que tengan instalado Java).

1.3

WhatIsEJS? (w)

Qu es EJS?
Easy Java Simulations es una herramienta de software diseada para la creacin de simulaciones discretas por computador. Una simulacin discreta por computador, o simplemente una simulacin por computador, es un programa de computador que intenta reproducir, con nes pedaggicos o cientcos, un fenmeno natural a travs de la visualizacin de los diferentes estados que ste puede presentar. Cada uno de estos estados est descrito por un conjunto de variables que cambia en el tiempo debido a la iteracin de un cierto algoritmo. Todo esto signica que EJS es un programa que le ayuda a crear otros programas; ms precisamente, simulaciones cientcas. Existen muchos programas que ayudan a crear otros programas. Lo que hace

Figure 2. Discos rgidos chocando

en una caja. (w)

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

EJS a EJS diferente de la mayora de los otros productos es que EJS no ha sido diseado para hacer la vida ms sencilla a los programadores profesionales, sino que ha sido concebido por profesores de ciencias para ser usado por profesores y estudiantes de ciencias. Esto es, para personas que estn ms interesadas en el contenido de la simulacin, en el fenmeno mismo que se simula, que en los aspectos tcnicos necesarios para construir la simulacin. Easy Java Simulations es una herramienta de modelado y de autor expresamente dedicada a esta tarea. Ha sido diseado para permitir a sus usuarios trabajar a un alto nivel conceptual, usando un conjunto de herramientas simplicadas y concentrando la mayora de su tiempo en los aspectos cientcos de la simulacin, y pidiendo al computador que realice automticamente todas las otras tareas necesarias pero fcilmente automatizables. No obstante lo anterior, el resultado nal, generado automticamente por EJS a partir de la descripcin del autor, podra pasar, en trminos de eciencia y sosticacin, por la creacin de un programador profesional. En particular, EJS crea aplicaciones Java que son independientes y multiplataforma, o applets que se pueden visualizar usando cualquier navegador Web (y por tanto ser distribuidos a travs de Internet), que pueden leer datos a travs de la red y ser controlados usando scripts (conjuntos de instrucciones) incluidos en las pginas HTML. Dado que existe un valor educativo aadido en el proceso de creacin de una simulacin, EJS puede ser usado tambin como una herramienta pedaggica. Con l, los profesores pueden pedir a sus estudiantes que creen una simulacin por s mismos, quiz siguiendo algunas lneas directrices previas dadas por el instructor. Usado de esta manera, EJS puede ayudar a los estudiantes a que hagan explcitos sus conocimientos y conceptos. Usado en grupos, EJS puede servir tambin para mejorar las capacidades de los alumnos para discutir y comunicarse sobre cuestiones cientcas.

1.4

Installation (w)

Instalacin
Easy Java Simulations ha sido escrito completamente en lenguaje Java y, por tanto, puede ejecutarse en cualquier plataforma que soporte Java (se requiere la versin 1.5 o posterior). Funciona exactamente igual en todos los casos, con pequeas variaciones debidas a cmo cada sistema produce los grcos. Sin embargo, el proceso de instalacin vara un poco segn el sistema operativo. Esta seccin describe el proceso de instalacin para: sistemas operativos Windows, sistemas operativos Linux/Unix y sistemas operativos Mac OS X. Como el proceso es bastante similar para cada tipo de sistema operativo, dividimos el proceso en pasos (descarga, instalacin y ejecucin de EJS) y describimos los mtodos de cada sistema operativo en cada paso.
Instalacin multi-idioma

La interfaz de EJS ha sido traducida a diferentes idiomas (aunque a algunos de ellos, slo parcialmente). Actualmente EJS incluye traducciones completas a ingls, castellano (espaol) y cataln. Cualquier instalacin de EJS contiene todos los idiomas disponibles. EJS aparecer por defecto en el idioma nativo de su March 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS sistema operativo. La consola de EJS le permite obligar a EJS a aparecer en un idioma en particular. Los usuarios que deseen traducir EJS a un nuevo idioma o mejorar las traducciones existentes, por favor, pueden contactar con el autor en fem@um.es.
Aspecto grco de la interfaz de usuario

Puede pedirle a EJS que utilice cualquiera de los diferentes aspectos grcos de Java disponibles en su instalacin. Estos aspectos grcos hacen que EJS tenga un aspecto ligeramente diferente. Por tanto, la interfaz que obtenga usted al ejecutar EJS puede diferir un poco de las imgenes de esta Wiki.

1.5

Download (w)

Descargar e instalar
Descargar

Como mnimo, necesita descargar el paquete de EJS. Si su sistema no tiene Java instalado, deber tambin descargar el paquete de instalacin del Entorno de Ejecucin de Java (Java Runtime Environment). Descargar el paquete de EJS. La ltima versin est en EJS versin 4.1 2 (creada el 8 de marzo de 2009). Se han introducido importantes cambios en las versiones 4.0 y 4.1, incluidas nuevas utilidades que harn que su experiencia de simulacin sean mejor. Se recomienda a los usuarios de versiones anteriores de EJS que lean la pginas de notas de versin y versiones anteriores (w) . El paquete incluye algunos ejemplos en el directorio de muestra workspace. Para obtener ms ejemplos, vaya a la pgina de Demos/Ejemplos (w) . Algunos usuarios necesitan la conexin de EJS con Matlab/Simulink 3 (slo disponible en sistemas operativos Windows). Esta caracterstica no se ofrece de momento en la versin 4.0 y posteriores. Si usted necesita realmente esta posibilidad, descargue EJS versin 3.47 4 (creada el 1 de marzo de 2008) y lea cmo usar EJS con Matlab/Simulink (w) . Pero slo si de verdad necesita esta caracterstica! EJS 4.1 es, con mucho, una versin mejor y es la nica versin soportada actualmente. El chero de distribucin es un chero de Windows comprimido (ZIP), as que necesitar una herramienta para descomprimirlo. La mayora de los sistemas operativos modernos incluyen una herramienta para ello. Pero si el suyo no la tiene, aqu van nuestras sugerencias: Para Windows, utilice cualquiera herramienta de descompresin ZIP. Por ejemplo, 7-zip, disponible en http://www.7-zip.org, o la clsica herramienta Winzip, disponible en http://www.winzip.com.
2 3 4

fem.um.es/Download/Ejs/EJS_4.1_090308.zip www.mathworks.com fem.um.es/Download/Ejs/Ejs3.47_080301.zip

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

EJS Para Linux/Unix, hay varias herramientas, como unzip y gunzip. stas suelen venir con la distribucin. Para MacOS, utilice MacZip o StuffItExpander, disponible en varios sitios.
Instalar

Descomprima la distribucin. Esto crear un nuevo directorio llamado EJS_X.X (donde X.X quiere decir el nmero de la versin actual, por ejemplo EJS_4.0) que contendr el chero EjsConsole.jar y tres subdirectorios: bin, doc, and workspace. No modique ninguno de los archivos del subdirectorio bin ni cambie su nombre. El directorio bin contiene los archivos de librera necesarios para ejecutar EJS. De la misma manera, no toque el subdirectorio llamado doc. Este directorio contiene una copia de esta Wiki. El subdirectorio denominado workspace contiene un espacio de trabajo de muestra. El concepto de espacio de trabajo de EJS se discute aqu (p 7). Nota al reinstalar EJS: Si precisa reinstalar EJS o actualizarse a una nueva versin del mismo, siga el mismo procedimiento para descomprimir el nuevo paquete de EJS. Puede querer hacer una copia de seguridad del directorio workspace/source del directorio de la instalacin (no del suyo personal), en el caso de que hiciera algn cambio de importancia a las simulaciones de ejemplo includas en dicho directorio. No hay problema en reemplazar o borrar las copias previas de los directorios bin, doc, o de los dems subdirectorios de workspace, as como el chero EjsConsole.jar. Si necesita instalar Java, vaya a http://java.sun.com/javase/downloads. La versin actual de EJS requiere el JRE 1.5 o posterior. Ntese que slo se requiere el Entorno de Ejecucin de Java (Java Runtime Environment o JRE); el Kit de Desarrollo de Java (Java Development Kit o JDK) contiene al JRE as como otras cosas que no son necesarias para ejecutar EJS. Para Windows, descargue el instalador del JRE; est disponible en versiones para instalacin en linea (con una descarga inicial ms pequea) o fuera de lnea (autocontenida). Para Linux/Unix, descargue el instalador del JRE o un paquete RPM que realizar la instalacin. MacOS X viene con una versin completamente congurada y operativa del Kit de Desarrollo de Java.
EJS es de cdigo abierto

Easy Java Simulations es de cdigo abierto. Si quiere obtener el cdigo fuente completo, aqu va un proyecto autocontenido de Eclipse 5 con todo el cdigo fuente: Ejs Eclipse Workspace 6 (archivado el 8 de marzo de 2009).
5 6

www.eclipse.org fem.um.es/Download/Ejs/EJS_4.1_workspace_090308.zip

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

1.6

EJSWorkspaces (w)

Espacios de trabajo de EJS


EJS utiliza el concepto de un espacio de trabajo para organizar su trabajo. Un espacio de trabajo es un directorio donde EJS almacena todos sus cheros de simulacin para un determinado proyecto. Un espacio de trabajo puede contener un nmero ilimitado de simulaciones. Dentro de cada directorio que se congure como espacio de trabajo, encontrar cuatro subdirectorios. cong: Este subdirectorio contiene cheros de conguracin creados por EJS cuando cambie usted sus opciones de ejecucin. export: ste es el subdirectorio por defecto que EJS le ofrecer cuando cree usted paquetes autoejecutables (cheros JAR) o cheros HTML para su distribucin. output: Este directorio es usado por EJS para almacenar cheros intermedios generados cuando se ejecuta una simulacin desde EJS. source: ste es el directorio en el que debe usted almacenar todos sus cheros de simulacin (cheros XML), as como cheros auxiliares de stas, tales como imgenes GIF o cheros de datos. Puede usted tener ms de un espacio de trabajo en su computador, si lo desea. Por ejemplo, para separar proyectos diferentes, o tipos de simulaciones distintos. La consola de EJS le permite cambiar de espacio de trabajo. Para crear un nuevo espacio de trabajo, simplemente cree un directorio vaco en el disco duro de su computador y utilice la opcin correspondiente de la consola de EJS (est en la pestaa de Opciones Bsicas) para seleccionarlo. EJS crear automticamente en l los cuatro subdirectorios necesarios indicados arriba. Cuando ejecuta usted EJS por primera vez, la consola le pedir que elija un directorio para su espacio de trabajo. ste debe ser un directorio cualquiera de su disco duro en el que se pueda escribir. Puede elegir usar el espacio de trabajo incluido en la distribucin, es decir, el subdirectorio workspace del directorio EJS_X.X creado cuando descomprimi el paquete de EJS. Este espacio de trabajo contiene algunas simulaciones de ejemplo en su subdirectorio source. Pero se recomienda que cree usted un nuevo directorio para su espacio de trabajo en su carpeta personal de archivos. La ventana de dilogo que le permite elegir su espacio de trabajo contiene un botn que, al seleccionarlo, copiar todos los ejemplos del espacio de trabajo de la distribucin en el directorio source de su nuevo espacio. La prxima vez que ejecute EJS, la consola recordar el ltimo espacio de

Figure 3. Una estructura de di-

rectorios tpica.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

EJS trabajo usado y arrancar en dicho espacio. Esta regla tambin se aplica si reinstala el programa EJS. (La informacin se guarda en un chero de texto llamado .EjsConsole.txt de su carpeta personal de usuario. Borre este archivo si desea forzar la eleccin de un espacio de trabajo al arrancar EJS.) Nota al reinstalar EJS: Si precisa reinstalar EJS o actualizarse a una nueva versin del mismo, siga el mismo procedimiento para descomprimir el nuevo paquete de EJS. Puede querer hacer una copia de seguridad del directorio workspace/source del directorio de la instalacin (no del suyo personal), en el caso de que hiciera algn cambio de importancia a las simulaciones de ejemplo includas en dicho directorio. No hay problema en reemplazar o borrar las copias previas de los directorios bin, doc, o de los dems subdirectorios de workspace, as como el chero EjsConsole.jar. Reinstalar EJS no tiene otro efecto sobre su espacio de trabajo personal.

1.7

RunningEjs (w)

Ejecutando EJS
Es muy sencillo ejecutar EJS. Para Windows o Mac OS, coloque en su Escritorio un icono de acceso directo al chero EjsConsole.jar, del directorio EJS_X.X creado al descomprimir el paquete de distribucin de EJS. Haga doble clic en este icono para arrancar EJS. Tambin puede elegir hacer doble clic directamente sobre el chero EjsConsole.jar del directorio EJS_X.X. Los sistemas Linux/Unix interpretan el chero EjsConsole.jar como un chero de archivo. Por ello, hacer doble clic en EjsConsole.jar no arrancar EJS. Hay dos formas de arrancar EJS bajo Linux/Unix: Desde una ventana de terminal (command line): Vaya al directorio que contiene el chero EjsConsole.jar, y escriba el comando java -jar EjsConsole.jar. Desde un icono del escritorio: Deber crear un nuevo Enlace a Aplicacin (Link to Application); la aplicacin(Command) es java -jar $camino/EjsConsole.jar [donde $camino es el camino completo del directorio donde se encuentra el chero EjsConsole.jar], y el directorio de trabajo (Work path) es $camino (en caso contrario, EJS no sabr dnde encontrar sus directorios de apoyo). As, por ejemplo, si descomprimi EJS en su Escritorio, creando el nuevo directorio EJS_4.0, el Command es java -jar ~/Desktop/EJS_4.0/EjsConsole.jar y el Work path es ~/Desktop/EJS_4.0. Cuando EJS arranca, se abrirn [al menos] dos ventanas: La consola de EJS (p 10) (vase la imagen de abajo), que presenta tres pestaas: Opciones Bsicas (p 10), Opciones Avanzadas (p 11) y rea de Mensajes (p 12). La ventana de edicin de EJS (ver imagen), que tiene tres botones de radio en la parte superior: Descripcin, Modelo y Vista.

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

Si estuvo usted trabajando en alguna simulacin en una sesin anterior, y la consola est congurada para cargar la ltima simulacin, las ventanas de la vista de dicha simulacin pueden aparecer tambin al mismo tiempo que la ventana de edicin de EJS. Finalmente, observar que, durante el proceso de arranque de EJS, una pequea ventana de dilogo mostrar la evolucin de dicho arranque. Cuando termine su sesin de trabajo con EJS, la forma ms ordenada de terminar es cerrar la ventana de edicin de EJS en la forma habitual de su sistema operativo. EJS le pedir que conrme que desea salir. Otros modos de terminar la sesin con EJS pueden ser ms abruptos (por ejemplo, no guardarn el estado de EJS para una futura sesin). Si no ha guardado sus ltimos cambios, EJS le preguntar si desea hacerlo. Puede ejecutar una segunda, o ms, copia de EJS, si lo desea. Para ello, utilize Francisco Esquembre et al. March 11, 2009, at 11:00 AM

10

EJS los botones Ejecutar Easy Java Simulations o Ejecutar EJS de la consola de EJS. No es recomendable intentar ejecutar una segunda copia de EJS haciendo de nuevo doble-clic en EjsConsole.jar cuando la consola ya est en ejecucin. De hecho, si lo intenta, EJS le preguntar si realmente desea hacerlo. La consola no puede cerrarse directamente. Se cerrar automticamente cuando la ltima copia de EJS se cierre.

1.8

Console (w)

La consola de EJS
La consola de EJS es el punto de partida para ejecutar EJS. La consola se usa para arrancar EJS y para ejecutar otros procesos que requieren de ms de una copia de EJS. Tambin muestra mensajes de salida y posibles mensajes de error de las simulaciones creadas con EJS y, ocasionalmente, mensajes de error del propio EJS. La consola aparece en una ventana separada de la de EJS que no puede cerrarse. Cuando la consola arranca, ejecuta a su vez una primera copia de EJS. Puede usar unos botones incluidos en la interfaz de la consola para ejecutar ms copias de EJS. La consola se cerrar automticamente cuando cierre la ltima de las copias de EJS en ejecucin. Tpicamente, slo se necesita ejecutar una nica copia de la consola a la vez. Si intenta ejecutar una segunda copia, aparecer un mensaje de aviso. La consola tiene tres pestaas: la pestaa de Opciones Bsicas (p 10), la de Opciones Avanzadas (p 11) y la de rea de Mensajes (p 12).

1.9

ConsoleBasicOptions (w)

Opciones bsicas de la consola de EJS


La consola de EJS tiene tres pestaas: la pestaa de Opciones Bsicas, la de Opciones Avanzadas (p 11) y la de rea de Mensajes (p 12). La pestaa de Opciones Bsicas de la consola de EJS contiene informacin sobre: la direccin en su disco duro de su MV (Mquina Virtual) de Java. su espacio de trabajo (p 7) actual. Haca clic en el botn a la derecha de este campo para cambiar el espacio de trabajo. Y le permite elegir las siguientes opciones:

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

11

Cargar el ltimo archivo: si EJS debe cargar al arrancar el chero de la ltima simulacin usada en la sesin previa. Minimizar la consola: si se debe minimizar la consola al arrancar. Idioma: el idioma que debe usar EJS. Actualmente, las opciones son (aunque no todas las traducciones estn completas):
Local (por defecto) da (Dans) pl (Polaco) zh TW (Chino tradicional) en (Ingls) es (Castellano) fr (Francs) ru (Ruso) el (Griego) sl (Esloveno) ca (Cataln) nl (Holands) zh CN (Chino simplicado)

Aspecto grco: el esquema grco para la interfaz grca de EJS y la consola. Los esquemas de aspecto grco disponibles dependen de su instalacin. Tres opciones siempre estn disponibles: SISTEMA: El aspecto grco para ventanas estndar de su sistema operativo. MULTIPLATFORMA: Un aspecto grco estndar, algo minimalista, disponible en todas las plataformas. POR DEFECTO: El aspecto por defecto decidido por usted en el chero de conguracin swing.properties. (ste es chero opcional que puede usted crear en el directorio lib de Java.) Las selecciones de estas opciones se guardan; no necesita elegirlas de nuevo cada vez que arranca EJS. Simplemente las cambia una vez y los cambios tienen efecto en la prxima sesin. Finalmente, la pestaa de Opciones Bsicas tiene un botn en su parte inferior que le permite arrancar copias adicionales de EJS.

1.10

ConsoleAdvancedOptions (w)

Opciones avanzadas de la consola de EJS


La consola tiene tres pestaas: la pestaa de Opciones Bsicas (p 10), la de Opciones Avanzadas y la de rea de Mensajes (p 12). La pestaa de Opciones Avanzadas de la consola de EJS permite al usuario: Elegir una MV (Mquina Virtual) de Java alternativa para ejecutar EJS. Haga clic en el botn a la derecha de este campo para seleccionar una.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

12

EJS

Aadir parmetros a la MV Java (opciones de la lnea de comando para el propio Java). Especicar argumentos (opciones de la lnea de comandos) para EJS. Los tres campos tienen efecto al ejecutar la siguiente copia de EJS. En la parte inferior de la pestaa de Opciones Avanzadas, hay tres botones que le permiten: Compilar (un) directorio: Se abrir un explorador de cheros que le permite elegir un subdirectorio del directorio source de su espacio de trabajo actual. La consola le ofrecer entonces compilar todas las simulaciones (cheros XML) bajo este subdirectorio. Opcionalmente, puede pedirle a EJS que empaquete cada una de estas simulaciones, una vez compiladas, creando un chero JAR autoejecutable para cada una. Empaquetar simulaciones: Este botn le permite crear un nico paquete con varias simulaciones (un denominado Paquete Launcher - Lanzador) previamente generadas con EJS. Esta funcionalidad tambin esta accesible desde EJS en el men emergente del botn de empaquetado de la barra de tareas. Reconstruir paquete: Le permite reconstruir un paquete Launcher creado previamente, con el n de recompilar las simulaciones del paquete, actualizar las libreras del paquete, aadir nuevas simulaciones al paquete.

1.11

ConsoleOutputArea (w)

El rea de mensajes de la consola de EJS


La consola tiene tres pestaas: la pestaa de Opciones Bsicas (p 10), la de Opciones Avanzadas (p 11) y la de rea de Mensajes. La pestaa de rea de Mensajes de la consola de EJS muestra algunos mensajes iniciales de arranque, el comando usado para invocar la ventana de edicin de EJS, incluidas las opciones de comando, y cualquier otro mensaje de salida que EJS produzca. Tambin le dir si los programas funcionaron correctamente (siempre que cerrar el ltimo EJS no haga que se cierre la consola). El rea de mensajes tambin mostrar cualquier mensaje de salida o de error producido por las simulaciones creadas por EJS. En la parte inferior de la pestaa del rea de Mensajes hay tres botones:

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

13

Ejecutar EJS: un segundo botn para iniciar una nueva ventana de edicin de EJS. Limpiar mensajes: limpia el rea de mensajes, lo que resulta til para borrar mensajes anteriores que pueden confundir. Ver procesos: muestra una ventana de dialgo con una lista de las copias de EJS que estn actualmente en ejecucin. Estas copias pueden nalizarse (en el caso en que se colgaran, por ejemplo) haciendo doble-clic en la entrada correspondiente de la lista, o seleccionndola y haciendo clic en el botn Terminar de la ventana de dilogo. (Recuerde, de nuevo, que terminar la ltima copia de EJS har que la consola se cierre.)

1.12

EJSUserInterface (w)

La interfaz de usuario de EJS


La imagen inferior muestra la ventana de edicin, o interfaz de usuario, de EJS con algunas anotaciones que hemos aadido para apuntar a sus diferentes partes. La barra de tareas de la derecha proporciona una serie de botones para mostrar un panel de informacin (p 15) sobre la simulacin, limpiar, abrir y guardar un chero, buscar en el cdigo, congurar EJS, y mostrar la ayuda de EJS (esta Wiki). Tambin proporciona iconos para ejecutar una simulacin y para empaquetar una o ms simulaciones en un chero JAR o exportarlas como applets en pginas web. Haciendo clic con el botn derecho en algunos iconos se puede realizar otras acciones alternativas (pero relacionadas). La parte inferior de la interfaz contiene un rea de mensajes donde EJS muestra mensajes de informacin. La parte central de la interfaz contiene los paneles de trabajo donde se construye la simulacin. EJS proporciona tres paneles de trabajo para construir la simulacin. Se selecciona el panel de trabajo activo utilizando los botones de radio de la parte superior. El primer panel, Descripcin (p 15), nos permite crear y editar narrativa multimedia basada en cdigo HTML que describe la simulacin. Cada pgina de narrativa aparece en una pestaa de este panel de trabajo y el usuario puede, haciendo clic con el botn derecho, editar la narrativa o importar cheros HTML escritos con otras herramientas. El segundo panel de trabajo, Modelo (p 17), est dedicado al proceso de modelado. Este panel se usa para crear variables que describen el modelo de nuestra simulacin, para inicializar estas variables, y para escribir algoritmos que describen cmo varan estas variables con el tiempo. Francisco Esquembre et al. March 11, 2009, at 11:00 AM

14

EJS El tercer panel de trabajo, Vista (p 23), est dedicado a la tarea de construir la interfaz grca de usuario de la simulacin, que permitir a los usuarios nales controlar la simulacin y mostrar sus salidas. La interfaz se construye seleccionando elementos de unas paletas y aadindolos al denominado rbol de elementos de la vista. Por ejemplo, la paleta Interfaz contiene botones, deslizadores y campos de entrada, y la paleta Elementos de dibujo 2D contiene elementos para dibujar datos 2D.

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

15

2
2.1

The panels in EJS


InformationPanel (w)

The information panel for a simulation


The information panel of EJS contains information about the simulation and instructions to EJS that affect all the three parts of a simulation (description, model, and view). The panel is invoked by clicking on the information panel icon at the top right of EJS interface. The arrow in the image points to that icon. The information panel looks like this: The rst six elds (Title, Author, . . . , Comments) include information about the simulation that the author types in for documentation purposes. This data is included in Launcher packages when the simulation is exported as part of one such package. The Imports eld refers to one or more Java import statements that the author uses to make references to Java classes (such as java.awt.Color) simpler. Hence, if the author adds an import statement such as java.awt.Color, she can refer to a given color as Color.BLACK (instead of the fully qualied name java.awt.Color.BLACK). The JAR Libraries eld lists external Java ARchive (JAR) libraries that contain additional Java classes that will be used in the simulation code. The User les eld lists auxiliary les that the author wants EJS to take with the simulation when exporting it. Although EJS makes a good detective work in nding such auxiliary les and lists them in the following eld (Files required), some les may scape this automatic detection. The author must then supply them here. The Files required eld lists the auxiliary les that EJS has detected your simulation needs when exported. Clicking the green icon to the right of this eld refreshes the list. Note on auxiliary les: It is highly recommended that all les required by a simulation be located under the same folder/directory as the original simulation (XML) le. EJS will then refer to this le relatively (with a name that starts with a dot . character). This relative location ensures that les are correctly moved when the simulation is copied to a different location in your source directory.

2.2

Description (w)

El panel de trabajo para la Descripcin

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

16

EJS

El panel de descripcin proporciona un lugar donde escribir narrativa introductoria para la simulacin. Esta informacin se mostrar al usuario al arrancar la simulacin, cuando se ejecuta como una aplicacin, o ser parte de las pginas HTML que acompaan a la simulacin, cuando se ejecuta como un applet. Es, por tanto, importante que dedique algo de tiempo a rellenar un texto de descripcin adecuado para su simulacin. Hay tres modos de rellenar esta descripcin. El primero hace uso del sencillo editor de HTML incluido en EJS. (Ver la imagen siguiente.) Este editor trabaja de un modo lo que se ve es lo que se obtiene, pero puede tambin cambiarse a modo de cdigo fuente que le permite escribir directamente cdigo HTML. Simplemente, explore los diferentes iconos proporcionados por el editor. Sin embargo, si preere usted usar un editor HTML externo para crear su texto HTML, tambin puede hacerlo. En este caso, haga clic con el botn derecho

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS sobre un panel de descripcin vaco, o sobre la pestaa de una pgina existente, y un men emergente le ofrecer dos maneras de importar una pgina HTML desde su disco duro. 1. Importar archivo HTML: Esta opcin leer un HTML existente y lo incorporar como parte de su descripcin. El efecto es el mismo que si hubiera tecleado el chero HTML completo en el editor HTML de EJS. 2. Enlace a archivo HTML externo: Esta opcin mostrar una pgina HTML existente como parte de su descripcin (pero no la incorporar). EJS recordar copiar este chero externo cuando exporte la simulacin (y su descripcin). Sin embargo, si el HTML hace referencia a cualquier otro chero (como una imagen GIF), debe usar usted el campo de Archivos propios del panel de informacin (p 15) de la simulacin para asegurarse de que este chero tambin se copie. El procedimiento recomendado es colocar todos estos cheros, el HTML y los auxiliares, en el mismo directorio que el chero XML de su simulacin, o en un subdirectorio del mismo.

17

2.3

Model (w)

El panel de trabajo para el Modelo


Dentro del panel Modelo podemos encontrar cinco subpaneles: Variables, Inicializacin, Evolucin, Relaciones jas y Propio. Al pulsar sobre el interior del subpanel creamos una nueva pgina a la que nos pide demos nombre. Se crea la pgina mostrando en la parte superior de la misma una pestaa. Haciendo clic con el botn derecho sobre la misma el men desplegable nos permitir entre otras opciones crear nuevas pginas de forma que nuestras variables puedan ser agrupadas de forma ms clara. De la misma forma en ese men desplegable puede elegir activar/desactivar la pgina cuando deje de utilizar esa pgina en su modelo sin necesidad de eliminarla. Variables del modelo (p 17) Inicializacin del modelo (p 19) Evolucin del modelo (w) Edicin de EDO (p 20) Eventos (p 20) Relaciones jas (p 21) Cdigo propio (p 22) Mtodos predenidos de EJS (p 23)

2.4

ModelVariables (w)

Llamamos variables a todas aquellas magnitudes que intervienen en nuestro modelo, tanto si se modican a lo largo del tiempo de ejecucin como si permanecen constantes. stas pueden verse modicadas por la dinmica interna de la simulacin aunque tambin por parte del usuario. En ocasiones la modicacin de una variable produce una modicacin en otras variables, entonces decimos que existen ligaduras. Para crear una nueva variable lo primero es darle un nombre, especicar un tipo y tratndose de vectores o matrices su dimensin. Puede ver cmo hacerlo, con un video ilustrativo en nuestro tutorial. Cada vez que de nombre a una nueva Francisco Esquembre et al. March 11, 2009, at 11:00 AM

18

EJS variable en esa misma pgina aparecer una nueva la donde seguir aadiendo nuevas variables. Si usted desea incluir una variable entre dos ya existentes o eliminar alguna de ellas utilice el men desplegable que obtendr haciendo clic con el boton derecho sobre la variable. - Tipos de variables: Dependiendo del uso que vayamos a hacer de ellas el ordenador necesita que se especique de qu tipo es cada una de nuestras variables. Aunque en Java existen algunos tipos ms, destinados a optimizar el uso de la memoria, EJS funciona con los siguientes tipos: boolean: para valores de verdadero o falso. int: para valores enteros. double: para nmeros en coma otante, es decir, nmeros reales en general. String: para caracteres y textos. Object: tipo que nos ofrece la programacin orientada a objetos de Java y que permite a programadores ms avanzados crear sus propios tipos.

- Nombrar variables: Tanto para dar nombre a nuestras variables como al resto de elementos de nuestra simulacin tales como paneles, mtodos propios del modelo y elementos de la vista hemos de tener en cuenta algunas restricciones y consejos. En primer lugar hay un grupo de palabras que no pueden usarse ya que son palabras reservadas por Java o por el propio EJS: boolean, break, byte, case, catch, char, continue, default, do, double, else, oat, for, getSimulation, getView, if, initialize, instanceof, int, long, Object, reset,return, short, step, String, switch, synchronized, throws, try, update, while. Aconsejamos adems, para evitar conictos entre los distintos nombres y confusiones con el cdigo propio de EJS que: - los nombre de cada variable sean nicos en cada modelo. - estn formados nicamente por caracteres alfanumricos y el carcter _ empezando siempre por un carcter alfabtico. - aunque no sea estrictamente obligatorio, que el primer carcter en los nombres de variables y mtodos sea minscula mientras que el de los elementos de vista sea mayscula. - utilizar nombres descriptivos. En caso de que sean necesarias ms de una palabra no se deben utilizar espacios en blanco si no escribir algo as como centroMasas. - no se debe utilizar nombres que comiencen por _ ya que EJS puede hacer uso de stos nombres. - Uso de las variables: Para el uso de variables vector o matriz ha de tener presente la forma de referirnos a cada uno de sus elementos en Java. En el caso de un vector llamado posX con 10 elementos, el primer elemento es el elemento de ndice 0, por tanto nos referiremos a l como posX[0] y el ltimo ser el posX[9]. De forma anloga ocurre con las matrices, el elemento situado en la primera la y la primera columna es el elemento matriz[0][0]. - Valor inicial: El valor inicial de una variable puede ser una constante o una expresin sencilla que establezcamos en la casilla destinada para ello. Si esta casilla se deja en blanco EJS le da un valor por defecto (el valor 0 si se trata de variables de tipo numrico). Podemos adems establecer ese valor inicial ms tarde en el panel de inicializacin o mediante una ecuacin de ligadura. Hay que tener en cuenta que si damos un valor inicial a una variable matriz o vector todos sus elementos se inicializarn con ese mismo valor. Para establecer March 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS valores iniciales distintos entre los elementos de una matriz o vector de forma que su valor dependa de la posicin que ocupan habr que incluir explcitamente el/los ndice/s de su posicin dentro de la matriz en el nombre de la variable y utilizarlos en la expresin para el valor. Por ejemplo para denir un vector cuyos elementos sean el doble de su posicin:
Nombre vector[i] Valor inicial 2.0*i Tipo double Dimensin [n]

19

Si n es un entero que inicializamos con el valor 5 nuestro vector ser el (0,2,4,6,8) Un ejemplo clsico del uso de variables de tipo Object es establecer una variable de color. Podramos hacer as que un determinado elemento de nuestra simulacin vaya cambiando de color. Podra ser algo as:
Nombre MiColor Valor inicial java.awt.Color.BLUE Tipo Object Dimensin

Ms adelante podra dar a la variable MiColor otro valor mediante una sentencia como sta:
MiColor=new java.awt.Color(255,0,0);

donde los tres parmetros signican la cantidad de rojo, verde y azul respectivamente (el del ejemplo sera rojo). Si adems quisiera aadir a su color un nivel de transparencia (lo cual rara vez se hace necesario y adems hace ms lenta su visualizacin) podr incluir un cuarto parmetro para ello.

2.5

ModelInitialization (w)

Si bien en la creacin de las variables podemos inicializarlas con un valor constante o una expresin sencilla dentro de la casilla Valor Inicial en algunos casos necesitamos una inicializacin ms compleja, como por ejemplo si necesitamos hacer unos clculos previos. Las pginas que podemos crear en este subpanel son el lugar donde escribir el cdigo Java necesario. Las pginas se ejecutarn por orden de izquierda a derecha aunque puede, haciendo clic con el botn derecho sobre la pestaa correspondiente, reordenarlas (Mover esta pgina a la derecha). La zona de edicin tiene otro men desplegable que podr ver haciendo clic con el botn derecho. Adems de opciones bsicas de edicin puede encontrar otras tres opciones. La opcin Format code sirve para dar un formato ms claro al cdigo facilitando la comprobacin del emparejamiento de llaves. En Asistente de Cdigo encontrar ayuda para incorporar a su cdigo las estructuras de control de ujo usuales como bucles y condicionales. La tercera opcin, Mtodos Predenidos y Propios, le ofrece una lista de los mtodos ya denidos en EJS que incorpora los del propio programa y los que aada usted en el subpanel Propio. En la parte inferior del panel puede aadir un comentario sobre el cdigo para facilitar su comprensin a otros usuarios y a usted mismo pasado el tiempo.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

20

EJS

2.6

ModelODEEditor (w)

Este editor le permite denir sistemas de ecuaciones diferenciales ordinarias explcitas de primer orden. Es decir, aquellos en los que se expresa la primera derivada de una o ms variables del modelo con una funcin explcita de ellas mismas y de las dems sin derivar. Que deban ser ecuaciones de primer orden no es restrictivo ya que cualquier sistema de ecuaciones de orden superior puede expresarse de forma equivalente como un sistema de ecuaciones de primer orden introduciendo las variables auxiliares necesarias. Puede ver un ejemplo de cmo denirlas en nuestro tutorial.

2.7

ModelEvents (w)

Algunas veces, cuando estamos implementando la evolucin de nuestra simulacin mediante la resolucin de un sistema de ecuaciones diferenciales, deseamos que el sistema detecte que cierta condicin dependiente de las variables del mismo se ha producido y que nos permita realizar en ese punto algunas correcciones para ajustar nuestra simulacin. Por ejemplo, nos encontramos ante un evento cuando realizamos la simulacin del movimiento de una pelota de baloncesto que al encontrarse con el suelo rebota. La solucin numrica para estas ecuaciones no tendr en cuenta, por s misma, el hecho de que la solucin calculada puede situar a la pelota en una posicin bajo tierra, sto es, y(t) < 0 . Como el mtodo para la solucin numrica avanza mediante saltos en el tiempo es muy difcil que el momento de la colisin de la pelota con el suelo coincida con una de las soluciones dadas, situando entonces a la pelota en un estado, digmoslo as, ilegal. De hecho, podramos preferir que el ordenador por si mismo hubiese detectado el problema y hubiese detenido momentneamente la simulacin en el momento preciso de la colisin aplicando entonces el cdigo necesario para simular el rebote de la pelota contra el suelo y continuando despus desde esas condiciones iniciales. De forma ms precisa, denimos un evento como un cambio de signo de una funcin real de las variables de estado (las variables que se derivan) y de la variMarch 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS able independiente de una EDO.(Los eventos causados slo por la variable independiente se suelen llamar eventos temporales.). Para facilitar nuestra explicacin y ya que todas las variables dependen de la variable independiente, denotaremos por h(t) a la funcin que cambia de signo en el evento. Para ayudarle a programar este tipo de sucesos el editor de EDO de EJS dispone de un botn con el rtulo Eventos que le llevar a una nueva ventana con un nuevo editor. Junto al botn podemos observar un campo numrico que nos muestra el nmero de eventos incorporados a nuestra simulacin. La creacin y manejo de las pginas en esta ventana es igual al del resto de subpaneles del panel Modelo. En la nueva ventana encontrar dos secciones de edicin diferenciadas a parte del campo de texto destinado a comentarios. En la seccin superior se indicar cmo se detecta el evento. Escribiremos aqu el cdigo que calcula la funcin que va a cambiar de signo. Este cdigo tiene que devolver un valor de tipo double por lo que ya incorpora por defecto el cdigo return 1.0; el cual no causa ningn evento. En el campo situado en la esquina superior derecha de esta seccin estableceremos el valor de la tolerancia que deseamos para localizar el evento.

21

2.8

ModelFixedRelations (w)

Como ya hemos dicho en ocasiones la modicacin de una variable produce una modicacin en otras variables, entonces decimos que existen relaciones de ligadura. stas se expresan de forma explcita mediante expresiones del tipo: xi = gi (x1 , x2 , . . . , xi1 , xi+1 , . . . , xn ) donde, como se puede ver, cada variable aparece slo en uno de los dos lados de la ecuacin. Un criterio til (aunque quiz no siempre vlido) para distinguir estos dos tipos de relaciones es examinar la expresin que usamos para calcular el valor de una variable en un momento dado y si este valor depende del valor actual de esa misma variable, en tal caso es probable que se trate de una ecuacin de evolucin. Por el contrario, si el nuevo valor de la variable se calcula slo a partir de los valores de otras variables ser una ligadura.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

22

EJS

La razn por la que no se deben incluir estas relaciones entre las ecuaciones de evolucin es la existencia de una segunda fuente de cambios: la interaccin directa del usuario con la simulacin. Si las relaciones jas han de ser vlidas siempre entonces deberan mantenerse cuando el usuario cambia alguna de estas variables, incluso si la simulacin est parada. Por esto, es conveniente identicar claramente y escribir de forma separada estos dos tipos. sto permitir al ordenador saber qu ecuaciones deben ser evaluadas en cada caso. ste cuarto subpanel funciona de la misma forma que el de Evolucin. Aqu deben incluirse las ecuaciones de ligadura de su modelo transcritas a lenguaje Java.

2.9

ModelCustomCode (w)

Este ltimo subpanel del Modelo es el indicado para denir sus propios mtodos en Java (tambin llamadas funciones o subrutinas). Este subpanel funciona de la misma forma que los dos anteriores, en cuanto a la creacin y uso de pginas, aunque existen dos diferencias importantes. Por un lado est el uso que EJS har del cdigo que usted escriba en estas pginas. A diferencia del cdigo del resto de editores el cual pasa a formar parte de la simulacin directamente, estos mtodos no se utilizarn a menos que usted los invoque desde otro lugar de la simulacin. Por otra parte en este panel tiene total libertad para escribir su cdigo Java, el nico requisito es que sean mtodos Java vlidos. Cuando cree una nueva pgina en este panel con el nombre, digamos, MiMetodo EJS le proporcionar una pgina con el esqueleto inicial de su mtodo. Crear un mtodo Java requiere, antes de empezar a escribir el cdigo necesario, que se le d un nombre, que se indique el tipo del valor de salida (si es que hay un valor de salida) y que se especique la accesibilidad del mtodo. Adems tendremos que decidir si acepta parmetros de entrada y de qu tipo. - El nombre para el mtodo puede ser el que desee pero ha de tener en cuenta las convenciones que se explicaron en la creacin de variables. - Con el trmino accesibilidad nos referimos a qu partes de la simulacin podrn hacer uso de este mtodo. Si el mtodo es declarado public entonces ser universalmente visible y puede ser usado desde cualquier parte de la simulacin March 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS e incluso desde fuera de la simulacin utilizando JavaScript. Si el mtodo no es declarado pblico (ya sea utilizando la palabra private o simplemente nada) entonces el mtodo slo podr ser utilizado desde el modelo. De hecho no hay una razn poderosa para no hacer todos nuestros mtodos pblicos, salvo quiz evitar confusin entre usuarios externos que se encuentren ante una demasiado amplia oferta de mtodos de los que desconozcan su funcionamiento. - El tipo de valor de salida es el tipo de aquello que devuelva la funcin. Si la funcin no devielve ningn valor se indicar con el tipo especial void. Si devuelve un valor habr que decir de qu tipo Java es, ya sea simple o compuesto. En tal caso el cdigo de nuestro mtodo tendr que terminar con una sentencia return que indique el valor devuelto. - Los parmetros se indican con una lista separada por comas de parejas tiponombre que declaran variables locales que podrn utilizarse a lo largo del mtodo. Esta lista se escribe entre parntesis justo despus del nombre del mtodo. Si el mtodo no necesita parmetros de entrada la lista estar vaca. Veamos un ejemplo de dos mtodos. Tenga en cuenta que puede denir ms de un mtodo en cada una de las pginas. El primero calcula la exponencial del coseno de un valor doble mientras que el segundo calcula el conjugado de un valor complejo que se especica con un vector de dos entradas, una para la parte real y otra para la parte compleja: double expCos (double x) { return Math.exp (Math.cos(x)); } double[] conjugate (double[] complex) {
return new double[]{complex[0],-complex[1]}; }

23

2.10

PredenedMethods (w)

EJS has some predened methods for typical actions that you can use anywhere in your code, either in model pages or in view element property actions. All predened methods start with an underscore character _, to help them distinguish with your own custom methods. Here is the list of EJS predened methods: _play() : Starts playing the evolution. _pause() : Stops playing the evolution. . . . More to be done

2.11

View (w)

El panel de trabajo para la Vista


Conectar variables del modelo y propiedades de los elementos de la vista (p 46) Conectar propiedades de los elementos de vista a expresiones (p 47) Referencia de Elementos (p 35)

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

24

EJS

2.12

ElementsConnecting (w)

Para conectar una variable del modelo con el elemento de vista apropiado, simplemente escriba el nombre de la variable en cuestin en el campo de texto que encontrar en el editor de propiedades del elemento. Esta conexin es bidireccional, lo que signica que si la variable del modelo cambia, el elemento de la vista recibe el nuevo valor de forma automtica y cambia consecuentemente. Y al contrario, si el usuario interacta con el elemento de forma que sus propiedades se modican de alguna forma, el nuevo valor pasa a la variable del modelo. Simple pero efectivo. Otra forma es elegir la variable que se relacionar con la propiedad utilizando el segundo icono de la derecha. Este icono, que muestra una cadena de unin, , le mostrar una ventana con una lista de todas las variables del modelo que pueden ser relacionadas con la propiedad. (Slo aparecern aquellas variables del tipo apropiado). Haciendo doble clic sobre el que haya elegido EJS rellenar este campo. Algunas veces ver que EJS escribe la variable entre smbolos de porcentaje, %Nombre%. Sin embargo esto es vlido y le dice a EJS explcitamente que Nombre es una variable del modelo, sto slo es necesario cuando la propiedad es del tipo String, para resolver la ambigedad creada si escribimos slo Nombre. Podra signicar el literal Nombre o que el nombre de la variable es Nombre. Para que el cdigo quede ms claro, recomendamos siempre escribir las cadenas String entre comillas, Nombre, pero como muchas veces se olvida EJS tiene el detalle de asumirlo como literal por lo que aade las comillas por usted de forma automtica.

2.13

ElementsConnectingToExpressions (w)

Las propiedades de los elementos de vista tambin pueden conectarse a expresiones que involucren variables del modelo (o no), por ejemplo: x+1, donde x es una variable del modelo de tipo double, Math.sin(0.5), o Texto = +textString,donde textString es una variable del modelo de tipo String. EJS evaluar la expresin correctamente y asignar su resultado en el elemento de la vista apropiado. Sin embargo, se pierde la bidireccionalidad. Es decir, si conecta una propiedad a la expresin x+1 y x cambia en el modelo la propiedad se actualiza correctamente. Pero NO al revs. Si interacta con el elemento ocasionando un cambio en sus propiedades, la variable del modelo no cambiar (al valor de la propiedad menos 1). En realidad la propiedad ser forzada a volver al valor x+1 despus de la interaccin, quedando el elemento sin cambio aparente. Este comportamiento se debe a que no todas las expresiones tienen inversa. Qu hara EJS si usara la expresin x*x? La inversa proporciona dos valores, positivo y negativo. Cul usara EJS?.

2.14

Elements (w)

Lo sentimos, slo en ingls por el momento. March 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS

25

2.15

ElementsInterface (w)

Elementos para la Interfaz. stos son los elementos utilizados para construir la interfaz. Estos elementos estn basados en elementos estndar de Java para interfaces, tales como ventanas, paneles y botones.
(p 74) (p 74) (p 74) (p 47) (p 48) (p 65) (p 49) (p 45) (p 55) (p 73) (p 45) (p 45) (p 65) (p 75) (p 55)
?

(p 74)

(p 56) (p 69)

(p 49) (p 74) (p 61) (p 64)


?

(p 48)

(p 58)

(p 48)

(p 54) (p 65) (p 46) (p 73)

(p 43)

(p 55) (p 55) (p 45) (p 56) (p 61)

(p 48) (p 56) (p 58) (p 73) (p 49) (p 54)

(p 64)

2.16

Elements2DDrawables (w)

Elementos de dibujo 2D. stos son elementos de dibujo para paneles bidimensionales. Por tanto, estos elementos slo pueden ser hijos de paneles de dibujo o con ejes 2D.
(p 43) (p 62) (p 52) (p 61) (p 49) (p 48) (p 75)
(w)

(p 64) (p 67)

(p 64) (p 64) (p 43) (p 54) (p 61) (p 49) (p 64) (p 69) (p 73) (p 74) (p 73)

(p 45) (p 62) (p 64)

(p 55) (p 64) (p 38) (p 38) (p 48)

(p 41) (p 71) (p 74) (p 38) (p 73) (p 45) (p 69)

(p 49) (p 45) (p 46)


? ?

(p 58)

(p 38)

(p 56) (p 65) (p 69) (p 38)

(p 58) (p 75)
? ? ?

(p 49) (p 58) (p 58) (p 73)

? ? ? ? ? ? ?

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

26

EJS

2.17

Elements3DDrawables (w)

Elementos de dibujo 3D. stos son elementos de dibujo para paneles tridimensionales. Por tanto, estos elementos slo pueden ser hijos de paneles de dibujo 3D.
(p 44) (p 64) (p 54) (p 61) (p 58) (p 48) (p 69) (p 46) (p 69) (p 74) (p 64) (p 64) (p 54) (p 61) (p 65) (p 46) (p 58) (p 49) (p 69) (p 46) (p 69) (p 74) (p 56) (p 38) (p 38) (p 58) (p 65) (p 46) (p 64) (p 73)

(p 43) (p 73) (p 49) (p 44) (p 48)

(p 43) (p 73) (p 49) (p 44) (p 48)

(p 69)

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

27

3
3.1

Deployment
Deployment (w)

Distribucin de simulaciones creadas con EJS


Puede usted distribuir las simulaciones creadas con EJS usando las siguientes opciones del icono de Empaquetar, , de la barra de tareas:

Empaquetar slo la simulacin actual: Esta opcin crea un chero JAR comprimido, autoejecutable y autocontenido. Slo necesita distribuir este chero a sus usuarios y stos lo podrn ejecutar haciendo doble-click sobre l. Claro est, sus usuarios debern tener instalado el entorno de ejecucin de Java (JRE) en sus computadores. La simulacin exportada tiene algunas opciones de men (p 28) que pueden usarse por sus usuarios nales para, entre otras cosas, extraer el modelo de la simulacin y trabajar con l usando EJS (si tienen EJS instalado). Usted y sus usuarios pueden tambin traducir la simulacin (p 30) a diferentes idiomas. Empaquetar varias simulaciones: Esta opcin le permite crear lo que denominamos un paquete Launcher (o lanzador). Un paquete Launcher es un chero JAR comprimido, autoejecutable y autocontenido, con varias simulaciones creadas con EJS listas para ser usadas. El lanzador proporciona una agradable interfaz para mostrar las descripciones de las simulaciones y un men de navegacin para organizar las simulaciones en categoras y ejecutarlas. La imagen que sigue muestra un ejemplo de paquete Launcher. Los paquetes pueden ser editados para reorganizarlos (usando su propio men) o reconstruidos con EJS para aadirles nuevas simulaciones o para actualizar las libreras en su interior. Exportar sitio web con applets: Esta opcin crea un conjunto de cheros HTML que permiten publicar varias simulaciones creadas con EJS en la

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

28

EJS forma de applets (aplicaciones dentro de una pgina Web). Cuando use esta opcin, EJS le pedir el nombre del chero HTML que acta de ndice. EJS crear dicho chero y un directorio con su mismo nombre y la extensin .les (cheros), donde colocar todos los cheros necesarios para ejecutar las simulaciones como applets. Exportar estas pginas HTML es tan sencillo como copiar el chero HTML ndice generado y su directorio .les de acompaamiento al MISMO DIRECTORIO de su servidor web. Un usuario con conocimientos de HTML puede editar fcilmente los cheros HTML generados por EJS para crear pginas personalizadas. Cuando elija usted el nombre del chero ndice, EJS le permite elegir si desea crear los cheros JAR necesarios de manera que sean autocontenidos o minimizar su tamao individual creando un chero aparte denominado common.jar que contiene los cheros de librera repetidos. La segunda opcin se recomienda (porque minimiza los tiempos de descarga) cuando publique un sitio web terminado y no aadir nuevas simulaciones al mismo. Esto es debido a que el chero common.jar es diferente si cambia las simulaciones del sitio y no ser compatible. Si cambia las simulaciones, deber reconstruir el sitio con todas las simulaciones involucradas. La opcin de JARs autocontenidos crea cheros JAR individuales ms grandes, pero stos son independientes unos de otros. Es importante saber que los applets de Java se ejecutan por los navegadores con altos niveles de seguridad para el usuario. Esto implica, por ejemplo, que un applet de Java normal no puede acceder al disco duro del computador. Para que un applet Java pueda leer o escribir en el disco duro (as como otras acciones), debe usted rmar el applet. Busque esta frase en Google para saber qu signica esto y cmo se rma un applet. Comprimir los archivos fuente de la simulacin: Esta opcin crea un chero comprimido ZIP con todos los cheros que utiliza su simulacin. sta es la opcin que debe elegir si quiere enviar una simulacin a un colega que tambin usa EJS. El chero ZIP resultante es de unos pocos KB. Para que esta opcin funcione correctamente, debe usted situar cualquier chero auxiliar (tales como imgenes GIF) que utilice su simulacin en el mismo directorio que su chero XML fuente, o en un subdirectorio de ste, y referirse al chero en EJS de manera relativa. Es decir, con su nombre comenzando por ./. (Como en ./MiImagen.gif o ./UnSubdirectorio/MiImagen.gif.) EJS siempre se reere de manera relativa a cheros situados correctamente (es decir, bajo el mismo directorio que el chero XML).

3.2

DeploymentSimulationsMenu (w)

Men de una simulacin creada con EJS


Cada simulacin posee un men con algunas utilidades. Este men aparece cuando el usuario hace clic con el botn derecho sobre un PanelDibujo (2D o 3D) o un PanelConEjes (2D).

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

29

Figure 4. Men para un PanelDibujo 2D. Se muestra tambin el submen Entrada/Salida

del estado.

El men contiene un primer grupo de opciones particulares correspondientes al PanelDibujo, un segundo grupo de opciones para la simulacin, y un tercer grupo de tareas de alto nivel.
Opciones comunes:

Capturar la imagen Entrada/Salida del estado Guardar Estado. Guarda el estado actual (el valor de las variables) de la simulacin en el disco. La extensin para guardar por defecto es .xml, que genera un chero de datos XML. Si se selcciona otro tipo de extensin (tal como .dat), el chero se almacena en formato binario. Leer Estado. Lee un estado previamente guardado con la opcin Guardar Estado. Este estado se convierte en el estado por defecto para la simulacin hasta que se ejecuta un Reinicio del Estado por Defecto (ver abajo). Esto es, una llamada a _reset() reiniciar primero la simulacin al estado denido por defecto por el autor y luego lee este chero. (Despus de esto, se llama a las pginas de inicializacin, luego las relaciones jas, etc. . . )). Es importante que el chero de entrada haya sido creado con la misma versin de la simulacin que trata de leerlo. De otor modo podemos obtener resultados no esperados. Estado de Inicio por Defecto. Limpia cualquier chero de estado por defecto que el usuario hubiera podido leer antes y deja la simulacin en el estado inicial denido por el autor. Opciones de la interfaz
Tareas de alto nivel:

Mostrar Descripcin Francisco Esquembre et al. March 11, 2009, at 11:00 AM

30 Abrir Modelo Ejs OSP Registro de Mensajes. . .


Opciones adicionales cuando se ejecuta como chero JAR:

EJS

Si se ha empaquetado una simulacin como un chero JAR auto-ejecutable para su distribucin. En este caso, ejecutando la simulacin (ejecutando el chero JAR) y haciendo clic con el botn derecho sobre un PanelDibujo o un PanelConEjes se muestra el mismo men PERO con una opcin adicional (ver gura). Crear pgina HTML. Crea un chero HTML que contiene cdigo HTML (bsicamente, una etiqueta applet) para ejecutar esta simulalacin como un applet. Este HTML no contiene informacin de las pginas descripcin de la simulacin, pero est pensado para permitirle publicar una simulacin en formato JAR en una pgina web que cree uno mismo. Para crear un conjunto de pginas HTML que incluyan la descripcin de sus simulaciones, haga clic con el botn derecho sobre el botn del EJS de empaquetar y seleccione Exportar sitio web con applets .

3.3

DeploymentLocalization (w)

How to translate a simulation created with Ejs to a language different to the original
Run the simulation and right-click on any of its drawing or plotting panels. The drawing panels popup menu will appear. Select the GUI options Translate option. In the translation panel that you get, input the two letters code for your language in the Language eld. For instance, es for Spanish, fr for French, de for German,. . .

Figure 5. El men expandido cuando se ejecuta una simulacin como JAR. La opcin

Crear pgina HTML se encuentra destacada.

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

31

Translate the elds as required. Size elds need to be translated only if your new texts make the original size inconvenient. When you are done, click on the Save button. This creates a le in a subdirectory of your working directory (the directory where the original XML simulation le is, if you run the simulation from within Ejs). For a simulation illustrates in the pictures of this page, which is called PlanetaryMotion, Ejs will create the le PlanetaryMotion/PlanetaryMotion_es.properties. Open the simulation le with Ejs and add this new properties le to the list of User les as dened in the simulation information panel. Create the simulation again. Thats it. When you run the simulation, its user interface will appear in the default language of your operating system. You can switch to a different language by Francisco Esquembre et al. March 11, 2009, at 11:00 AM

32 using the drawing panels popup menu GUI options Language option.

EJS

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

33

4
4.1

Appendices
ConditionsOfUse (w)

Condiciones de uso
El derecho de copia (copyright) de Easy Java Simulations es exclusivamente de su autor, Francisco Esquembre (w) , quien lo distribuye bajo licencia GNU GPL. 7 El propio EJS y sus cheros de librera JAR pueden copiarse y distribuirse sin lmite y sin permiso previo. En cualquier caso, la referencia al autor y otros crditos que aparecen en el programa deben siempre preservarse. Los autores pueden distribuir cualquier simulacin que hayan creado con EJS, con la nica condicin de que se incluya una mencin a este hecho, junto con un enlace a la pgina Web ocial de EJS: http://fem.um.es/Ejs. No es preciso incluir esta referencia en todas las pginas que contengan una simulacin de una unidad educativa. Bastar con incluir una referencia para todo el conjunto en un lugar claramente visible. Cualquier publicacin que resulte del uso de Easy Java Simulations debe hacer referencia al servidor Web ocial de EJS: http://fem.um.es/Ejs. El derecho de copia (copyright) de los ejemplos de simulaciones en este servidor o en el paquete de distribucin de EJS son propiedad de sus autores. Animamos a los autores que hayan creado nuevos ejemplos con EJS a enviarnos un breve correo electrnico con un enlace a sus ejemplos.

4.2

Credits (w)

Crditos
El derecho de copia (copyright) de Easy Java Simulations es exclusivamente de su autor, Francisco Esquembre (w) , quien lo distribuye bajo licencia GNU GPL. 8 Sin embargo, Easy Java Simulations, en su versin actual, es el resultado de un proyecto llevado a cabo a lo largo de varios aos y bajo diferentes concepciones e implementaciones. Por ello, EJS debe mucho a contribuciones de varios grupos de personas. Easy Java Simulations es parte del proyecto Open Source Physics, 9 creado por Wolfgang Christian, Davidson College, Carolina del Norte, EEUU. sta es una lista (en orden alfabtico) de personas que han contribuido a EJS: Doug Brown, Cabrillo College, California, EEUU. Wolfgang Christian, Davidson College, Carolina del Norte, EEUU. Fu-Kwun Hwang, Universidad Normal Nacional de Taiwan, Taiwan. Howard Kistler, Hexidec 10 (por eKit, el editor HTML usado en el panel de Descripcin). Pat Niemeyer (pat@pat.net) y otros desarrolladores de BeanShell, 11 el intrprete usado para la comprobacin de la sintaxis.
7 8 9 10 11

www.gnu.org/copyleft/gpl.html www.gnu.org/copyleft/gpl.html www.opensourcephysics.org www.hexidec.com www.beanshell.org

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

34

EJS Jos Snchez, Gonzalo Farias y Hctor Vargas, Universidad Nacional de Educacin a Distancia, Espaa. Frank F. Schweickert, Instituto AMSTEL, Universidad de Amsterdam, Holanda (por sus contribuciones a conformar esta Wiki). Yuri B. Senichenkov y Andrei Goussev, Universidad Politcnica de San Petersburgo, Rusia (por los mtodos de resolucin de EDO DoPri y Radau). Las diferentes traducciones se deben a: Ingls y Castellano (Espaol): Francisco Esquembre, Universidad de Murcia, Espaa. Cataln: Paco Rivire, http://pacoriviere.cat, Consultor Libre. Un lugar de honor especial est reservado, por supuesto, para la familia de Paco: su mujer Araceli y sus dos hijas Araceli y Maria Beln, por todas esas tardes de n de semana que pas (y an pasa!) frente al computador.

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

35

5
5.1

Elements reference
Main.Elements (w)

Lo sentimos, slo en ingls por el momento.

5.2

Main.Elements2DDrawables (w)

Elementos de dibujo 2D. stos son elementos de dibujo para paneles bidimensionales. Por tanto, estos elementos slo pueden ser hijos de paneles de dibujo o con ejes 2D.
(p 43) (p 62) (p 52) (p 61) (p 49) (p 48) (p 75)
(w)

(p 64) (p 67)

(p 64) (p 64) (p 43) (p 54) (p 61) (p 49) (p 64) (p 69) (p 73) (p 74) (p 73)

(p 45) (p 62) (p 64)

(p 55) (p 64) (p 38) (p 38) (p 48)

(p 41) (p 71) (p 74) (p 38) (p 73) (p 45) (p 69)

(p 49) (p 45) (p 46)


? ?

(p 58)

(p 38)

(p 56) (p 65) (p 69) (p 38)

(p 58) (p 75)
? ? ?

(p 49) (p 58) (p 58) (p 73)

? ? ? ? ? ? ?

5.3

Main.Elements3DDrawables (w)

Elementos de dibujo 3D. stos son elementos de dibujo para paneles tridimensionales. Por tanto, estos elementos slo pueden ser hijos de paneles de dibujo 3D.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

36
(p 44) (p 64) (p 54) (p 61) (p 58) (p 48) (p 69) (p 46) (p 69) (p 74) (p 64) (p 64) (p 54) (p 61) (p 65) (p 46) (p 58) (p 49) (p 69) (p 46) (p 69) (p 74) (p 56) (p 38) (p 38) (p 58) (p 65) (p 46) (p 64) (p 73)

EJS

(p 43) (p 73) (p 49) (p 44) (p 48)

(p 43) (p 73) (p 49) (p 44) (p 48)

(p 69)

5.4

Main.ElementsAboutColors (w)

Colors in Ejs View Elements


A static color (i.e. a color that will not change during the execution of the simulation) for a given view element property is specied in Ejs using either one of the predened Ejs colors:
BLACK GRAY ORANGE YELLOW BLUE PINK CYAN RED DARKGRAY MAGENTA WHITE

GREEN LIGHTGRAY

or providing its integer RGB coordinates (between 0 and 255), plus an optional transparency coordinate, as in 0,253,12,255. Just type the desired value in the corresponding view element property. A specialized color chooser can also help you choose a given static color. To specify a color that changes in run-time, youll need to declare a variable of type Object, associate it to the corresponding element property, and then change the variable according to your programs logic. For instance, if you declare a variable in Ejs called myColor, of type Object, the lines:
myColor = java.awt.Color.RED; myColor = new java.awt.Color(255,0,0);

can both be used in the Java code of your program to create a solid red color in run-time. The associated view element property will change accodingly. If you need semi-transparent colors, use something like:
myColor = new java.awt.Color(255,0,0,127);

The last parameter is the level of transparency desired. 255 makes a full solid color. Semi-transparent colors may slow down a little bit your program.

5.5

Main.ElementsAboutLayout (w)

Slo disponible en ingls por el momento. March 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS

37

5.6

Main.ElementsAboutParticlePositions (w)

Relative Position of 2D View Elements


A static relative position (i.e. a position that will not change during the execution of the simulation) a 2D drawable element in Ejs is specied using one of the predened Ejs constants: CENTERED. The shape is drawn with its center point on the elements coordinates. (Equivalent integer: 0). NORTH. The shape is drawn with its top middle point on the elements coordinates. (Equivalent integer: 1). SOUTH. The shape is drawn with its bottom middle point on the elements coordinates. (Equivalent integer: 2). EAST. The shape is drawn with its middle right point on the elements coordinates. (Equivalent integer: 3). WEST. The shape is drawn with its middle left point on the elements coordinates.(Equivalent integer: 4). NORTH_EAST. The shape is drawn with its top right point on the elements coordinates. (Equivalent integer: 5). NORTH_WEST. The shape is drawn with its top left point on the elements coordinates. (Equivalent integer: 6). SOUTH_EAST. The shape is drawn with its bottom right point on the elements coordinates. (Equivalent integer: 7). SOUTH_WEST. The shape is drawn with its bottom left point on the elements coordinates. (Equivalent integer: 8). It could be easier to choose the position in the menu: To specify a position that changes in run-time, youll need to declare a variable of type int, associate it to the corresponding element property, and then change the variable according to your programs logic. The integer values equivalent to each relative position are specied in the list above.

5.7

Main.ElementsAboutParticleStyles (w)

Particle Styles
A static style for a particle (i.e. a style that will not change during the execution of the simulation) is specied using one of the predened Ejs constants: NONE. A single dot is drawn. (Equivalent integer: 0) ELLIPSE. (Equivalent integer: 1) RECTANGLE. (Equivalent integer: 2) ROUND_RECTANGLE. (Equivalent integer: 3)

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

38 WHEEL. An ellipse with its coordinate axes. (Equivalent integer: 4)

EJS

To specify a style that changes in run-time, youll need to declare a variable of type int, associate it to the corresponding element property, and then change the variable according to your programs logic. The integer values equivalent to each style are specied in the list above.

5.8

Main.ElementsAboutTransforms (w)

Lo sentimos, slo disponible en ingls por el momento.

5.9 5.10

Main.ElementsAnalyticCurve (w) Main.ElementsAnalyticCurve2D (w)

Disponible slo en ingls por el momento.

5.11

Main.ElementsAnalyticCurve3D (w)

Disponible slo en ingls por el momento.

5.12

Main.ElementsAnalyticScalarField2D (w)

Disponible slo en ingls por el momento.

5.13

Main.ElementsAnalyticSurface3D (w)

Disponible slo en ingls por el momento.

5.14

Main.ElementsAnalyticVectorField2D (w)

Disponible slo en ingls por el momento.

5.15

Main.ElementsArrayPanel (w)

Disponible slo en ingls por el momento.

5.16

Main.ElementsArrow (w)

An arrow is a 2D and 3D drawing element that displays a simple geometrical vector at given coordinates of the parent drawing or plotting panel. There is a version for 2D canvas and another one for a 3D space. The properties here shown are for the 2D model, though they are similar in 3D.

Figure 6. -

AnalyticCurve: A curve given by analytic expressions or a whole parametric family of such curves.

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

39

Figure 7. -

Arrow: An interactive arrow or segment.

Object wrapped
The object wrapped by this element is of the class org.opensourcephysics.displayejs.Arrow. The class has been designed to control all of its features through properties, so there is no need to use directly any of the object methods.

Useful methods
(This list deliberately left empty.)

Properties

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

40

EJS

Position and Size


Name X Y Size X Description The X coordinate for the element. The Y coordinate for the element. The size of the element in the X direction. The size of the element in the Y direction. The scale factor for the element in the X direction. The scale factor for the element in the Y direction. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int.

Size Y

A constant or variable of type double or int.

Scale X

A constant or variable of type double or int.

Scale Y

A constant or variable of type double or int.

Visibility and Interaction


Name Visible Description The visibility of the element. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A constant or variable of type int, 0 makes the full particle the hot spot. The Java code to invoke for the action.

Draggable Whether the element can be moved. Resizable Whether the element can be resized.

Sensitivity The size of the hot spot (in pixels). On Press On Drag On Release On Enter On Exit The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released.

The Java code to invoke for the action.

The Java code to invoke for the action.

The action to invoke The Java code to invoke for the action. when the mouse enters the element. The action to invoke when the mouse leaves the element. The Java code to invoke for the action.

Graphical Aspect
Name Style

March 11, 2009, at 11:00 AM


Description The drawing style for the element.

Values accepted

Francisco Esquembre et al.

Use the editor provided or read about particle styles (p 37). Use the editor provided or read about colors (p 36).

Line Color The color used for the

EJS

41

5.17

Main.ElementsArrow2D (w)

Properties

Figure 8. -

Arrow: An interactive arrow.

(p 43)

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

42

EJS

Position and Size


Name Pos X Pos Y Position [] Size X Size Y Size [] Description The X coordinate for the element. The Y coordinate for the element. The double[] array with the coordinates of the shape. The size of the element in the X direction. The size of the element in the Y direction. The double[] array with the size of the shape in each direction. The scale factor for the element in the X direction. The scale factor for the element in the Y direction. The transformation to apply to this element. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A double array. A constant or variable of type double or int. A constant or variable of type double or int. A double array.

Scale X Scale Y Transform

A constant or variable of type double or int. A constant or variable of type double or int. Use the editor provided or read more about transforms. (p 38)

Visibility and Interaction


Name Visible Draggable Resizable Drag Group Description Values accepted

The visibility of the element. A boolean variable or one of the constants true or false. Whether the element can be moved. Whether the element can be resized. Whether dragging the element affects its group. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A constant or variable of type int, 0 makes the full particle the hot spot. The Java code to invoke for the action.

Resize Group Whether resizing the element affects its group. Sensitivity The size of the hot spot (in pixels). The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released.

On Press On Drag On Release On Enter On Exit

The Java code to invoke for the action.

The Java code to invoke for the action.

The action to invoke when March the mouse enters the AM 11, 2009, at 11:00 element. The action to invoke when the mouse leaves the element.

The Java code to invoke for the action.

Francisco Esquembre et al.


The Java code to invoke for the action.

EJS

43

Main.GroupPublishFooter

5.18

Main.ElementsArrow3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.19

Main.ElementsArrowSet2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.20

Main.ElementsArrowSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.21

Main.ElementsBar (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.22

Main.ElementsBasic2D (w)
Forma2D. (p 64) Aade una elipse o un rectngulo interactivos (seleccionando RECTANGLE o ELLIPSE en el campo de texto Estilo en su panel de propiedades). Segmento. (p 62) Dibuja un segmento interactivo. Flecha. (p 41) Dibuja una echa interactiva. Muelle2D. (p 67) Dibuja un muelle. Imagen. (p 52) Aade una imagen o imagen animada de tipo GIF. Texto. (p 71) Introduce un texto interactivo con un tipo de fuente dado. Polgono. (p 61) Dibuja una lnea poligonal a partir de las coordenadas de sus vrtices. Rastro. (p 74) Forma ms sencilla de pintar una funcin. Conjunto. (p 49) Dibuja un conjunto con multitud de los respectivos elementos anteriores. Curva analtica. (p 38) Curva 2D dada por una expresin analtica. Cursor. (p 48) Cursor para un panel de dibujo 2D. Traza. (p 73) Dibuja una lnea poligonal formada por acumulacin de puntos, formando as la traza de un movimiento. Video. (p 75) Un clip de video

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

44 Imagen de WebCam. (p 45) Una imagen de WebCam.

EJS

Main.GroupPublishFooter

5.23

Main.ElementsBasic3DDrawables (w)
Partcula 3D. (p 46) Add a new 3D ellipse, rectangle. . . This element only can be hold by a 3D drawing panel. Segmento 3D. (p 64) Draw a new interactive 3D segment. Flecha 3D. (p 43) Draw a new interactive arrow for a 3D drawing panel. Muelle 3D. (p 69) Add a new 3D spring. Imagen. (p 54) Add a new image or a animated GIF image in a 3D drawing panel. Texto 3D. (p 73) Include a 3D interactive text eld. You can select the most appropriate text font. Traza 3D. (p 74) The most simple way to print a function on a drawing panel. Polgono. (p 61) Trace a polygonal line through the vertex coordinates. Grupo. (p 49) Dene a 3D elements group. Plano. (p 58) Add a 3D plane to the drawing panel. Caja. (p 44) Add a 3D box to the drawing panel. Esfera. (p 65) Add a 3D sphere to the drawing panel. Elipsoide. (p 48) Add a 3D ellipsoid to the drawing panel. Cilindro. (p 48) Add a 3D cylinder to the drawing panel. Cono. (p 46) Add a 3D cone to the drawing panel. Supercie. (p 69) Add a 3D surface to the drawing panel.

Main.GroupPublishFooter

5.24

Main.ElementsBox3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.25

Main.ElementsBoxSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

45

5.26 5.27

Main.ElementsButton (w) Main.ElementsButtonsAndDecoration (w)


Etiqueta. Se usa para escribir rtulos con efectos decorativos o infomativos. Ecuacin. Campo para mostrar y modicar ecuaciones matemticas en TEX. Botn. Elemento en forma de botn cuya nalidad es invocar acciones. Botn de dos estados. Es un elemento similar al anterior con la diferencia de presentar dos estados, invocando a diferentes acciones en cada uno de ellos. Se suele utilizar para acciones de Play/Pause. Si la simulacin est parada el botn mostrar un estado que le permita accionarla (Play) y si la simulacin est en ejecucin mostrar el otro estado permitindole pararla (Pause). Selector. Un botn que permite seleccionar uno de dos estados posibles, verdadero o falso. Botn radio. Similar al anterior, presenta la particularidad de trabajar en grupo cuando se encuentra con otros botones de radio en el mismo contenedor. Entonces, la seleccin de uno cualquiera de ellos deselecciona a los dems. Selector de Sonido. Botn selector para poner o quitar sonido. Separador. Lnea de separacin. Web Cam. Elemento que muestra el video desde una cmara web.

Main.GroupPublishFooter

5.28

Main.ElementsByteRaster (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.29

Main.ElementsCamImage (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.30

Main.ElementsCellLattice (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.31 5.32

Main.ElementsCheckBox (w) Main.ElementsCheckBoxMenuItem (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter Francisco Esquembre et al. March 11, 2009, at 11:00 AM

46

EJS

5.33

Main.ElementsCircle3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.34

Main.ElementsCircleSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.35

Main.ElementsComboBox (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.36

Main.ElementsComplexDataset (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.37

Main.ElementsCone3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.38

Main.ElementsConeSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.39

Main.ElementsConnecting (w)

Para conectar una variable del modelo con el elemento de vista apropiado, simplemente escriba el nombre de la variable en cuestin en el campo de texto que encontrar en el editor de propiedades del elemento. Esta conexin es bidireccional, lo que signica que si la variable del modelo cambia, el elemento de la vista recibe el nuevo valor de forma automtica y cambia consecuentemente. Y al contrario, si el usuario interacta con el elemento de forma que sus propiedades se modican de alguna forma, el nuevo valor pasa a la variable del modelo. Simple pero efectivo. Otra forma es elegir la variable que se relacionar con la propiedad utilizando el segundo icono de la derecha. Este icono, que muestra una cadena de unin, , le mostrar una ventana con una lista de todas las variables del modelo que pueden ser relacionadas con la propiedad. (Slo aparecern aquellas variables del tipo apropiado). Haciendo doble clic sobre el que haya elegido EJS rellenar este campo. Algunas veces ver que EJS escribe la variable entre smbolos de porcentaje, %Nombre%. Sin embargo esto es vlido y le dice a EJS explcitamente que Nombre es una variable del modelo, sto slo es necesario cuando la propiedad es del tipo String, para resolver la ambigedad creada si escribimos slo Nombre. Podra signicar el literal Nombre o que el nombre de la variable es Nombre. Para que el cdigo quede ms claro, recomendamos siempre escribir las cadenas String entre comillas, Nombre, pero como muchas veces se olvida EJS tiene el detalle de asumirlo como literal por lo que aade las comillas por usted de forma automtica. Main.GroupPublishFooter March 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS

47

5.40

Main.ElementsConnectingToExpressions (w)

Las propiedades de los elementos de vista tambin pueden conectarse a expresiones que involucren variables del modelo (o no), por ejemplo: x+1, donde x es una variable del modelo de tipo double, Math.sin(0.5), o Texto = +textString,donde textString es una variable del modelo de tipo String. EJS evaluar la expresin correctamente y asignar su resultado en el elemento de la vista apropiado. Sin embargo, se pierde la bidireccionalidad. Es decir, si conecta una propiedad a la expresin x+1 y x cambia en el modelo la propiedad se actualiza correctamente. Pero NO al revs. Si interacta con el elemento ocasionando un cambio en sus propiedades, la variable del modelo no cambiar (al valor de la propiedad menos 1). En realidad la propiedad ser forzada a volver al valor x+1 despus de la interaccin, quedando el elemento sin cambio aparente. Este comportamiento se debe a que no todas las expresiones tienen inversa. Qu hara EJS si usara la expresin x*x? La inversa proporciona dos valores, positivo y negativo. Cul usara EJS?. Main.GroupPublishFooter

5.41

Main.ElementsContainers (w)

Estos elementos tienen como funcin albergar a otros elementos en su zona de pantalla. Los elementos introducidos en ellos se denominan hijos y el elemento contenedor padre. En la distribucin podemos encontrar los siguientes contenedores: Ventana (p 49). La caracterstica principal de las ventanas es que saben cmo relacionarse con el entorno de ventanas de su sistema operativo. En particular, pueden minimizarse y restaurarse de la forma habitual. Adems, cada vista debe tener al menos un primer elemento de este tipo en el cual colocar otros elementos y que llamaremos ventana principal. Ventana de Dilogo. (p 48) Las ventanas de dilogo son tambin ventanas independientes pero se diferencian de las anteriores en que no pueden minimizarse (aunque s ocultarse). Adems se mantienen visibles por encima de la ventana que le precede en el rbol de elementos lo que puede ser til en una simulacin con varias ventanas. Panel. (p 56) Los paneles son el tipo de contenedor ms bsico, til para simplemente agrupar otros elementos. Panel dividido. (p 65) ste es un sencillo contenedor con dos reas separadas. Panel con separadores. (p 69) Contenedor que muestra slo uno de los hijos cada vez, organizndolos mediante separadores con forma de pestaa.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

48

EJS Barra de herramientas. (p 73) Barra de herramientas que puede sacarse fuera de la ventana haciendo clic y arrastrando. Panel de dibujo. (p 48) Contenedor bsico para dibujo bidimensional. Panel con ejes. (p 58) Similar al anterior, incorpora un sistema de ejes cartesianos o polares. Panel de dibujo 3D. (p 48) Versin tridimensional del panel de dibujo.

Main.GroupPublishFooter

5.42

Main.ElementsCursor (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.43

Main.ElementsCylinder3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.44

Main.ElementsCylinderSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.45

Main.ElementsDataRaster (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.46

Main.ElementsDataTable (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.47

Main.ElementsDialog (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.48

Main.ElementsDisplay3DPanel (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.49

Main.ElementsDrawingPanel (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.50

Main.ElementsEllipsoid3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

49

5.51

Main.ElementsEllipsoidSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.52 5.53

Main.ElementsEquation (w) Main.ElementsFields2D (w)

Slo en ingls por el momento. Main.GroupPublishFooter

5.54

Main.ElementsFrame (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.55

Main.ElementsFunction (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.56

Main.ElementsGroup2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.57

Main.ElementsGroup3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.58

Main.ElementsHistogram (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.59

Main.ElementsImage (w)

An image is a 2D element that displays a simple image, read from disk, at given coordinates of the parent drawing or plotting panel.

Object wrapped
The object wrapped by this element is of the class org.opensourcephysics.displayejs.Image. The class has been designed to control all of its features through properties, so there is no need to use directly any of the object methods.

Useful methods
(This list deliberately left empty.)

Figure 9. -

Image: An interactive image.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

50

EJS

Properties

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

51

Position and Size


Name X Y Size X Size Y Scale X Scale Y Description The X coordinate for the element. The Y coordinate for the element. The size of the element in the X direction. The size of the element in the Y direction. The scale factor for the element in the X direction. The scale factor for the element in the Y direction. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int.

Visibility and Interaction


Name Visible Description The visibility of the element. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A constant or variable of type int, 0 makes the full particle the hot spot. The Java code to invoke for the action.

Draggable Whether the element can be moved. Resizable Whether the element can be resized. Sensitivity The size of the hot spot (in pixels). On Press On Drag On Release On Enter On Exit The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released.

The Java code to invoke for the action.

The Java code to invoke for the action.

The action to invoke when the mouse enters the element. The action to invoke when the mouse leaves the element.

The Java code to invoke for the action.

The Java code to invoke for the action.

Graphical Aspect
Name Image Position Description Provides a frame to display an image Position of the image relative to the container Values accepted File on disk containing the image to display Java predened constants for position (CENTER, NORTH, . . . )

RotateFranciscoto display the et al. with, Sexagesimal value11:00 AM (90 for Angle Esquembre image March 11, 2009, at of the angle relative to horizontal perpendicular)

52

EJS

Main.GroupPublishFooter

5.60

Main.ElementsImage2D (w)

Properties

Figure 10. -

Image: A 2D image or a animated GIF image.

(p 43)

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

53

Position and Size


Name Pos X Pos Y Position [] True Size Size X Size Y Size [] Scale X Scale Y Transform Description The X coordinate for the element. The Y coordinate for the element. The double[] array with the coordinates of the shape. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A double array.

Whether to draw the image with its A boolean variable or one of the real pixel size. constants true or false. The size of the element in the X direction. The size of the element in the Y direction. A constant or variable of type double or int. A constant or variable of type double or int.

The double[] array with the size of A double array. the shape in each direction. The scale factor for the element in the X direction. The scale factor for the element in the Y direction. A constant or variable of type double or int. A constant or variable of type double or int.

The transformation to apply to this Use the editor provided or read more element. about transforms. (p 38)

Visibility and Interaction


Name Visible Draggable Description The visibility of the element. Whether the element can be moved. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false.

Drag Group Whether dragging the element affects its group. Sensitivity

The size of the hot spot (in pixels). A constant or variable of type int, 0 makes the full particle the hot spot. The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released. The Java code to invoke for the action.

On Press On Drag On Release On Enter On Exit

The Java code to invoke for the action.

The Java code to invoke for the action.

The action to invoke when the mouse enters the element. The action to invoke when the mouse leaves the element.

The Java code to invoke for the action.

The Java code to invoke for the action.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

Graphical Aspect
Name Image File Description The le name with the image to Values accepted The le or a string variable.

54

EJS

Main.GroupPublishFooter

5.61

Main.ElementsImage3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.62

Main.ElementsImageSet2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.63

Main.ElementsImageSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.64

Main.ElementsInputAndOutput (w)
Barra. Una barra que representa un valor, normalmente asociado a una variable. Dicho valor ha de encontrarse entre unos valores mximo y mnimo que se pueden establecer en el panel de propiedades de la barra. Deslizador. Un deslizador que sirve para visualizar y modicar un valor. Igual que en el elemento anterior el valor se encontrar entre un mximo y un mnimo determinados. Tabla de datos. Una tabla de datos. Lista. Una lista desplegable para mostrar varias opciones y seleccionar una de ellas. Campo numrico. Es un campo para mostrar y modicar un valor numrico mediante teclado. Campo de texto. Es un campo para mostrar y modicar el valor de una variable de tipo String a travs del teclado. Campo para clave. Un campo de texto para introducir desde teclado una palabra secreta. Funcin. Un campo de texto para evaluar una funcin de una variable. rea de texto. Un rea en la que imprimir texto. Panel para matrices. Un panel para editar los datos de una matriz.

Main.GroupPublishFooter

5.65

Main.ElementsInterface (w)

Elementos para la Interfaz. stos son los elementos utilizados para construir la interfaz. Estos elementos estn basados en elementos estndar de Java para interfaces, tales como ventanas, paneles y botones. March 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS
(p 74) (p 74) (p 74) (p 47) (p 48) (p 65) (p 49) (p 45) (p 55) (p 73) (p 45) (p 45) (p 65) (p 75) (p 55)
?

55

(p 74)

(p 56) (p 69)

(p 49) (p 74) (p 61) (p 64)


?

(p 48)

(p 58)

(p 48)

(p 54) (p 65) (p 46) (p 73)

(p 43)

(p 55) (p 55) (p 45) (p 56) (p 61)

(p 48) (p 56) (p 58) (p 73) (p 49) (p 54)

(p 64)

Main.GroupPublishFooter

5.66 5.67

Main.ElementsLabel (w) Main.ElementsLattice (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.68

Main.ElementsMenu (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.69

Main.ElementsMenuBar (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.70

Main.ElementsMenuElements (w)
Barra de men. Una barra para men. Men. Un men. Botn de men. Un botn para men. Selector para men. Un selector de valores booleanos para men. Botn radio para men. Un selector de radio de valores booleanos para men. Se diferencia del anterior por funcionar en grupo. Cuando hay varios la seleccin de uno supone la deseleccin del resto. Separador para men. Lnea de separacin para men.

Main.GroupPublishFooter

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

56

EJS

5.71

Main.ElementsMenuItem (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.72

Main.ElementsOther3D (w)

Slo disponible en espaol por el momento. Main.GroupPublishFooter

5.73

Main.ElementsPanel (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.74

Main.ElementsParsedField (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.75

Main.ElementsParticle (w)

A particle is a 2D drawing element that displays a simple geometrical shape (a rectangle or an ellipse), at given coordinates of the parent drawing or plotting panel. The shape is drawn relative (see the Position property) to the given coordinates with the size specied in each direction. The element can also be applied a rotation and a scale factor for each coordinate. Particles respond to user interaction on their position coordinates (changing their position), invoking up to ve different actions.

Object wrapped
The object wrapped by this element is of the class org.opensourcephysics.displayejs.InteractiveParticle. The class has been designed to control all of its features through properties, so there is no need to use directly any of the object methods.

Useful methods
(This list deliberately left empty.)

Properties

Figure 11. -

Particle: An interactive particle.

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

57

Position and Size


Name X Y Size X Size Y Pixel Size Description The X coordinate for the element. The Y coordinate for the element. The size of the element in the X direction. The size of the element in the Y direction. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int.

Whether the size of the element is given A boolean variable or one of the in pixels. By default (i.e. false) the size constants true or false. of the element is relative to its parent panel coordinate system. The scale factor for the element in the X A constant or variable of type double direction. or int. The scale factor for the element in the Y A constant or variable of type double direction. or int.

Scale X Scale Y

Visibility and Interaction


Name Visible Description The visibility of the element. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A constant or variable of type int, 0 makes the full particle the hot spot. The Java code to invoke for the action. The Java code to invoke for the action. The Java code to invoke for the action.

Draggable Whether the element can be moved. Sensitivity The size of the hot spot (in pixels). The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released.

On Press On Drag On Release On Enter On

The action to invoke when Francisco Esquembre et al. the mouse 11,The Java code to invoke for the March 2009, at 11:00 AM enters the element. action.

The action to invoke when the mouse leaves the element.

The Java code to invoke for the action.

58

EJS

Main.GroupPublishFooter

5.76

Main.ElementsParticleSet (w)

Main.GroupPublishFooter

5.77

Main.ElementsPasswordField (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.78

Main.ElementsPipe (w)

Pipe. It represents a ow of a liquid, or in Automatic Control, a ow of any variable in a wide sense. It shows how ow is moved from one place to another. Main.GroupPublishFooter

5.79

Main.ElementsPlane3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.80

Main.ElementsPlaneSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.81

Main.ElementsPlottingPanel (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.82

Main.ElementsPoints (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.83

Main.ElementsPoints3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.84

Main.ElementsPolygon (w)

Useful methods
(This list deliberately left empty.)

Figure 12. -

Set of Particles. See ElementsParticle (p 56) for reference.

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

59

Figure 13. -

Polygon: An interactive curve or polygon.

Properties

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

60

EJS

Input
Name X Y Description The set of X coordinates. The set of Y coordinates. Values accepted A list of values of type double. A list of values of type double.

Position and Size


Name Position X Position Y Maxpoint Skip Active No repeat Connected Description The position of the element in the X direction. The sition of the element in the Y direction. The maximum value for the trace. The step between two consecutive points. Whether the element is active. If the plot should be periodic. Whether the points should be joined with a line. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type boolean. A constant or variable of type boolean. A constant or variable of type boolean.

Visibility and Interaction


Name Visible Draggable Resizable Description The visibility of the element. Whether the element can be moved. Whether the element can be moved. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. The Java code to invoke for the action. The Java code to invoke for the action. The Java code to invoke for the action. The Java code to invoke for the action. The Java code to invoke for the action.

Point selected Whether the element can be moved. Fixed corners Whether the element can be moved. The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released. The action to invoke when the mouse enters the element. The action to invoke when the mouse leaves the element.

On Press On Drag On Release On Enter On Exit

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

Graphical Aspect
Name Closed Description Color of the line. Values accepted Binary codied color.

EJS Main.GroupPublishFooter

61

5.85

Main.ElementsPolygon2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.86

Main.ElementsPolygon3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.87

Main.ElementsPolygonSet2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.88

Main.ElementsPolygonSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.89 5.90

Main.ElementsRadioButton (w) Main.ElementsRadioButtonMenuItem (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.91

Main.ElementsRecentChanges (w)

ArrowSet (w) . . . August 01, 2008, at 02:45 PM by arboleya ? : upload image of the screen Valve (w) . . . July 25, 2008, at 09:49 AM by arboleya ? : Pipe (w) . . . July 25, 2008, at 09:41 AM by arboleya ? : Tank (w) . . . July 25, 2008, at 09:39 AM by arboleya ? : TraceSet (w) . . . July 25, 2008, at 09:37 AM by arboleya ? : TextSet (w) . . . July 25, 2008, at 09:36 AM by arboleya ? : ImageSet (w) . . . July 25, 2008, at 09:34 AM by arboleya ? : SpringSet (w) . . . July 25, 2008, at 09:33 AM by arboleya ? : ParticleSet (w) . . . July 25, 2008, at 09:31 AM by arboleya ? : fast change to improve quickly the reference about sets ConnectingToExpressions (w) . . . July 05, 2008, at 09:26 AM by paco ? : Connecting (w) . . . July 05, 2008, at 09:11 AM by paco ? : Polygon (w) . . . May 28, 2008, at 11:36 AM by arboleya ? : gracal aspect lled in Cursor (w) . . . April 11, 2008, at 10:46 AM by arboleya ? : cursor.png CamImage (w) . . . April 11, 2008, at 10:45 AM by arboleya ? : camimage.png Histogram (w) . . . April 11, 2008, at 10:44 AM by arboleya ? : histogram.png AnalyticCurve (w) . . . April 11, 2008, at 10:44 AM by arboleya ? : analyticcurve.png Trace (w) . . . March 25, 2008, at 01:13 PM by arboleya ? : input set appart Francisco Esquembre et al. March 11, 2009, at 11:00 AM

62

EJS Spring (w) . . . March 04, 2008, at 12:06 PM by arboleya ? : lled in some missing properties Image (w) . . . March 04, 2008, at 11:53 AM by arboleya ? : lling in pending elds Text (w) . . . March 04, 2008, at 11:48 AM by arboleya ? : corrections to values available Elements (w) . . . March 03, 2008, at 02:41 PM by arboleya ? : Redirect to Elements/Reference Reference ? . . . March 01, 2008, at 12:35 PM by paco ? : Arrow (w) . . . February 29, 2008, at 11:45 AM by arboleya ? : 2D and 3D Particle (w) . . . February 29, 2008, at 11:34 AM by arboleya ? : screenshot UserDened (w) . . . January 29, 2008, at 08:04 PM by paco ? : AboutParticlePositions (w) . . . January 01, 2008, at 11:41 PM by paco ? : AboutParticleStyles (w) . . . January 01, 2008, at 11:39 PM by paco ? : AboutColors (w) . . . January 01, 2008, at 11:38 PM by paco ? : Video (w) . . . January 01, 2008, at 08:36 PM by paco ? : Poligon ? . . . January 01, 2008, at 08:34 PM by paco ? : Main.GroupPublishFooter

5.92

Main.ElementsScalarField2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.93

Main.ElementsSegment2D (w)

Properties

Figure 14. -

Segment: An interactive segment.

(p 43)

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

63

Position and Size


Name Pos X Pos Y Position [] Size X Size Y Size [] Scale X Scale Y Transform Description The X coordinate for the element. The Y coordinate for the element. The double[] array with the coordinates of the shape. The size of the element in the X direction. The size of the element in the Y direction. The double[] array with the size of the shape in each direction. The scale factor for the element in the X direction. The scale factor for the element in the Y direction. The transformation to apply to this element. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A double array. A constant or variable of type double or int. A constant or variable of type double or int. A double array. A constant or variable of type double or int. A constant or variable of type double or int. Use the editor provided or read more about transforms. (p 38)

Visibility and Interaction


Name Visible Draggable Resizable Drag Group Description The visibility of the element. Whether the element can be moved. Whether the element can be resized. Whether dragging the element affects its group. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A constant or variable of type int, 0 makes the full particle the hot spot. The Java code to invoke for the action.

Resize Group Whether resizing the element affects its group. Sensitivity The size of the hot spot (in pixels). The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released.

On Press On Drag On Release On Enter On Exit

The Java code to invoke for the action.

The Java code to invoke for the action.

The action to invoke when the mouse enters the element.

The Java code to invoke for the action.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM


The Java code to invoke for the action.

The action to invoke when the mouse leaves the element.

Graphical Aspect

64

EJS

Main.GroupPublishFooter

5.94

Main.ElementsSegment3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.95

Main.ElementsSegmentSet2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.96

Main.ElementsSegmentSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.97 5.98

Main.ElementsSeparator (w) Main.ElementsSet (w)

Aviso:Los diferentes iconos de esta tabla dibujan conjuntos con multitud de los respectivos elementos anteriores por lo que para saber ms sobre su uso se aconseja ver la explicacin referente al elemento en cuestin. Slo en ingls por el momento. Main.GroupPublishFooter

5.99

Main.ElementsSets3D (w)

Slo disponible en espaol por el momento. Main.GroupPublishFooter

5.100

Main.ElementsShape2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.101

Main.ElementsShapeSet2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.102

Main.ElementsSimpleVectorField2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.103

Main.ElementsSimpleVectorField3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.104

Main.ElementsSiteLattice (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

65

5.105

Main.ElementsSlider (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.106 5.107

Main.ElementsSoundOn (w) Main.ElementsSphere3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.108

Main.ElementsSphereSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.109

Main.ElementsSplitPanel (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.110

Main.ElementsSpring (w)

A spring is a 2D drawing element that displays a simple icon for a spring at given coordinates of the parent drawing or plotting panel. The shape is drawn relative (see the Position property) to the given coordinates with the size specied in each direction. The element can also be applied a rotation and a scale factor for each coordinate. They respond to user interaction on their position coordinates (changing their position), invoking up to ve different actions.

Object wrapped
The object wrapped by this element is of the class org.opensourcephysics.displayejs.InteractiveSpring. The class has been designed to control all of its features through properties, so there is no need to use directly any of the object methods.

Useful methods
(This list deliberately left empty.)

Properties

Figure 15. -

Spring: An interactive spring.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

66

EJS

Position and Size


Name X Y Size X Description The X coordinate for the element. The Y coordinate for the element. The size of the element in the X direction. The size of the element in the Y direction. The scale factor for the element in the X direction. The scale factor for the element in the Y direction. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A constant or variable of type double or int.

Size Y

A constant or variable of type double or int.

Scale X

A constant or variable of type double or int.

Scale Y

A constant or variable of type double or int.

Visibility and Interaction


Name Visible Draggable Resizable Description The visibility of the element. Whether the element can be moved. Whether the element can be resized. The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. The Java code to invoke for the action.

On Press On Drag On Release On Enter On

The Java code to invoke for the action.

The Java code to invoke for the action.

The action to invoke March 11, 2009, at 11:00 AM The Java code toEsquembrethe action. Francisco invoke for et al. when the mouse enters the element. The action to invoke when the mouse The Java code to invoke for the action.

EJS

67

Main.GroupPublishFooter

5.111

Main.ElementsSpring2D (w)

A spring is a 2D drawing element that displays a simple icon for a spring at given coordinates of the parent drawing or plotting panel. The shape is drawn relative (see the Position property) to the given coordinates with the size specied in each direction. The element can also be applied a rotation and a scale factor for each coordinate.

Properties

Figure 16. -

Spring: A 2D spring.

(p 43)

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

68

EJS

Position and Size


Name Pos X Pos Y Position [] Size X Size Y Size [] Scale X Scale Y Transform Description The X coordinate for the element. The Y coordinate for the element. The double[] array with the coordinates of the shape. The size of the element in the X direction. The size of the element in the Y direction. The double[] array with the size of the shape in each direction. The scale factor for the element in the X direction. The scale factor for the element in the Y direction. The transformation to apply to this element. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A double array. A constant or variable of type double or int. A constant or variable of type double or int. A double array. A constant or variable of type double or int. A constant or variable of type double or int. Use the editor provided or read more about transforms. (p 38)

Visibility and Interaction


Name Visible Draggable Resizable Drag Group Resize Group Sensitivity Description The visibility of the element. Whether the element can be moved. Whether the element can be resized. Whether dragging the element affects its group. Whether resizing the element affects its group. The size of the hot spot (in pixels). The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A constant or variable of type int, 0 makes the full particle the hot spot. The Java code to invoke for the action.

On Press On Drag On Release On Enter On Exit

The Java code to invoke for the action.

The Java code to invoke for the action.

The action to invoke when the mouse enters the element.

The Java code to invoke for the action.

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.


The Java code to invoke for the action.

The action to invoke when the mouse leaves the element.

Graphical Aspect

EJS

69

Object wrapped
The object wrapped by this element is of the class org.opensourcephysics.displayejs.InteractiveSpring. The class has been designed to control all of its features through properties, so there is no need to use directly any of the object methods. Main.GroupPublishFooter

5.112

Main.ElementsSpring3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.113

Main.ElementsSpringSet2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.114

Main.ElementsSpringSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.115

Main.ElementsSurface3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.116

Main.ElementsSurfaceSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.117

Main.ElementsTabbedPanel (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.118

Main.ElementsTank (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.119

Main.ElementsText (w)

Object wrapped
The object wrapped by this element is of the class org.opensourcephysics.displayejs.Text. The class has been designed to control all of its features through properties, so there is no need to use directly any of the object methods.

Useful methods
(This list deliberately left empty.)

Figure 17. -

Text: An interactive text.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

70

EJS

Properties

March 11, 2009, at 11:00 AM

Francisco Esquembre et al.

EJS

71

Position and Size


Name X Y Description The X coordinate for the element. The Y coordinate for the element. Values accepted A constant or variable of type double or int. A constant or variable of type double or int.

Visibility and Interaction


Name Visible Description The visibility of the element. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. The Java code to invoke for the action.

Draggable Whether the element can be moved. On Press On Drag On Release On Enter On Exit The action to invoke when the element is pressed. The action to invoke when the element is dragged. The action to invoke when the element is released. The action to invoke when the mouse enters the element. The action to invoke when the mouse leaves the element.

The Java code to invoke for the action.

The Java code to invoke for the action.

The Java code to invoke for the action.

The Java code to invoke for the action.

Graphical Aspect
Name Text Position Rotate Fill color Font Description Text to display Position of the text relative to container window Rotation of the text respect horizontal position Color to ll in the text font to display the text Values accepted Any string valid in Java Java predened constants (CENTERED, NORTH, SOUTH, . . . ) Rotation angle in sexagesimal degrees (90 for perpendicular) An integer codifying in binary 8 bits per color channel Available fonts of the underlying operating system

Main.GroupPublishFooter

5.120

Main.ElementsText2D (w)

Properties

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

72

EJS

Figure 18. -

Text: A text label.

(p 43)

Position and Size


Name Pos X Pos Y Position [] Size X Size Y Size [] Pixel Size Description The X coordinate for the element. The Y coordinate for the element. The double[] array with the coordinates of the shape. The size of the element in the X direction. The size of the element in the Y direction. The double[] array with the size of the shape in each direction. Whether the size of the element is given in pixels. By default (i.e. false) the size of the element is relative to its parent panel coordinate system. The scale factor for the element in the X direction. The scale factor for the element in the Y direction. The transformation to apply to this element. Values accepted A constant or variable of type double or int. A constant or variable of type double or int. A double array. A constant or variable of type double or int. A constant or variable of type double or int. A double array. A boolean variable or one of the constants true or false.

Scale X Scale Y Transform

A constant or variable of type double or int. A constant or variable of type double or int. Use the editor provided or read more about transforms. (p 38)

Visibility and Interaction


Name Visible Draggable Description The visibility of the element. Whether the element can be moved. Values accepted A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A boolean variable or one of the constants true or false. A constant or variable of type int, 0 makes the full particle the hot spot. The Java code to invoke for the action. The Java code to invoke for the action.

Drag Group Whether dragging the element affects its group. Sensitivity The size of the hot spot (in pixels).

On Press On Drag On Release On

The action to invoke when the element is pressed. The action to invoke when the element is dragged.

March 11, 2009, at 11:00 AM the element is Esquembre et al.to invoke for the Francisco The action to invoke when The Java code
released. action.

The action to invoke when the mouse enters

The Java code to invoke for the

EJS

73

Main.GroupPublishFooter

5.121

Main.ElementsText3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.122

Main.ElementsTextArea (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.123

Main.ElementsTextField (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.124

Main.ElementsTextSet (w)

Main.GroupPublishFooter

5.125

Main.ElementsTextSet2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.126

Main.ElementsTextSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.127

Main.ElementsTile3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.128

Main.ElementsToolBar (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.129

Main.ElementsTrace (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.130

Main.ElementsTraceSet (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

Figure 19. -

Set of Text Labels. See ElementsText (p 69) for reference.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

74

EJS

5.131

Main.ElementsTrail2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.132

Main.ElementsTrail3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.133

Main.ElementsTrailSet2D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.134

Main.ElementsTrailSet3D (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.135 5.136

Main.ElementsTwoStateButton (w) Main.ElementsUserDened (w)

Un elemento compuesto no es realmente un nuevo elemento de la vista, sino una coleccin de otros elementos de la vista adecuadamente dispuestos para producir un conjunto listo para su uso. Los elementos compuestos incluidos en la distribucin estndar de EJS son: DrawingFrame. Este elemento compuesto contiene una ventana (p 49) con un panel de dibujo (p 48) bidimensional en su centro y un sencillo panel (p 56) de control en su parte inferior. El panel de dibujo contiene un elemento de dibujo de tipo partcula (p 56) genrico al que puede usted enlazar las variables de su modelo. El panel de control incluye un botn de dos estados (p 74) para poner en marcha y parar la simulacin, un botn (p 45) que la devuelve a su estado inicial, y un campo numrico (p 56) (sin asignar) que se puede enlazar con una variable de tipo double del modelo. DrawingFrame3D. Este elemento compuesto es una versin tridimensional del anterior, DrawingFrame. El panel en el centro es un panel de dibujo en 3D (p 48) y la partcula en l una partcula 3D ? . PlottingFrame. Este elemento compuesto es muy similar a DrawingFrame aqu arriba, pero el panel de su centro es un panel con ejes (p 58).

Un usuario puede crear sus propios elementos compuestos y aadirlos a este panel para su propio uso. Para crear un nuevo elemento compuesto, cree en primer lugar la conguracin que desee en el rbol de elemento, usando los elementos disponibles actualmente y personalizndolos (editando sus propiedades, si es preciso). Despus, copie el grupo y haga clic con el botn derecho en el panel de elementos compuestos para pegar la seleccin. Entonces, siga las instrucciones para darle un nombre y asignarle un icono de tamao 2424 que se mostrar en el panel como el nuevo elemento compuesto. March 11, 2009, at 11:00 AM Francisco Esquembre et al.

EJS Los nuevos elementos compuestos pueden borrarse haciendo clic con el botn derecho sobre ellos y seleccionando la opcin Borrar que aparecer. Main.GroupPublishFooter

75

5.137

Main.ElementsValve (w)

Valve. It represents the abstraction of the control over a ow, ignoring therefore its internal delays or non-linearities. Its value is given as the value of the passing ow, with a negative value meaning a ow with inverse direction of the one shown. Main.GroupPublishFooter

5.138

Main.ElementsVideo (w)

Disponible slo en ingls por el momento. Main.GroupPublishFooter

5.139

Main.ElementsWebCam (w)

Main.GroupPublishFooter

Retrieved from http://www.um.es/fem/EjsWiki/index.php/Main/PrintEs Page collection published March 11, 2009, at 11:00 AM Typeset by Wikipublisher Copyright 20072009 Francisco Esquembre et al.

Francisco Esquembre et al.

March 11, 2009, at 11:00 AM

Você também pode gostar