<Osejs version="3.45">
<Osejs.Information>
<Title><![CDATA[]]></Title>
<Version><![CDATA[]]></Version>
<Author><![CDATA[]]></Author>
<Classification><![CDATA[]]></Classification>
<Keywords><![CDATA[]]></Keywords>
<Abstract><![CDATA[]]></Abstract>
<Language><![CDATA[]]></Language>
<AuxiliaryFiles><![CDATA[]]></AuxiliaryFiles>
</Osejs.Information>
<Osejs.Description>
<Osejs.Description.Page>
<Type>HTML_EDITOR</Type>
<Name>Intro Page</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<![CDATA[
<html>
  <head>
    
  </head>
  <body>
    Designed by Fu-Kwun Hwang http://www.phy.ntnu.edu.tw/ntnujava/
  </body>
</html>

]]>

</Content>
</Osejs.Description.Page>
</Osejs.Description>
<Osejs.Model>
<Osejs.Model.FramesPerSecond>20</Osejs.Model.FramesPerSecond>
<Osejs.Model.Autostart>true</Osejs.Model.Autostart>
<Osejs.Model.AdditionalLibraries>
</Osejs.Model.AdditionalLibraries>
<Osejs.Model.ImportStatements>
</Osejs.Model.ImportStatements>
<Osejs.Model.Variables>
<Osejs.Model.Variables.Page>
<Type>VARIABLE_EDITOR</Type>
<Name>coordinate</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<Variable>
<Name>range</Name>
<Value><![CDATA[200]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[range]]></Comment>
</Variable>
<Variable>
<Name>xmin</Name>
<Value><![CDATA[-range]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>xmax</Name>
<Value><![CDATA[range]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>ymin</Name>
<Value><![CDATA[-range/2]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>ymax</Name>
<Value><![CDATA[range/2]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>t</Name>
<Value><![CDATA[0.0]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>dt</Name>
<Value><![CDATA[0.05]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[time step]]></Comment>
</Variable>
<Variable>
<Name>size</Name>
<Value><![CDATA[range/20]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[particle size]]></Comment>
</Variable>
<Variable>
<Name>size2</Name>
<Value><![CDATA[size/8]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>stroke</Name>
<Value><![CDATA[2.0]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>xc</Name>
<Value><![CDATA[(xmin+xmax)/2]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>clr1</Name>
<Value><![CDATA[new java.awt.Color(192,192,192)]]></Value>
<Type>Object</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>clr2</Name>
<Value><![CDATA[new java.awt.Color(192,192,192,128)]]></Value>
<Type>Object</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>clr</Name>
<Value><![CDATA[clr1]]></Value>
<Type>Object</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>show</Name>
<Value><![CDATA[false]]></Value>
<Type>boolean</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name></Name>
<Value><![CDATA[]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>

</Content>
</Osejs.Model.Variables.Page>
<Osejs.Model.Variables.Page>
<Type>VARIABLE_EDITOR</Type>
<Name>basic</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<Variable>
<Name>n</Name>
<Value><![CDATA[30]]></Value>
<Type>int</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>x</Name>
<Value><![CDATA[xmin/3]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>y</Name>
<Value><![CDATA[0.0]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>d</Name>
<Value><![CDATA[0.0]]></Value>
<Type>double</Type>
<Dimension>[n]</Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>d2</Name>
<Value><![CDATA[0.0]]></Value>
<Type>double</Type>
<Dimension>[n]</Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>vi</Name>
<Value><![CDATA[3*size]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>ds</Name>
<Value><![CDATA[0.0]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>vd</Name>
<Value><![CDATA[0.0]]></Value>
<Type>double</Type>
<Dimension>[n]</Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name></Name>
<Value><![CDATA[]]></Value>
<Type>double</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>

</Content>
</Osejs.Model.Variables.Page>
<Osejs.Model.Variables.Page>
<Type>VARIABLE_EDITOR</Type>
<Name>language</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<Variable>
<Name>l_play</Name>
<Value><![CDATA["play"]]></Value>
<Type>String</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>l_pause</Name>
<Value><![CDATA["pause"]]></Value>
<Type>String</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>l_reset</Name>
<Value><![CDATA["reset"]]></Value>
<Type>String</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>l_init</Name>
<Value><![CDATA["initialize"]]></Value>
<Type>String</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>label</Name>
<Value><![CDATA[l_pause]]></Value>
<Type>String</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>l_step</Name>
<Value><![CDATA["step"]]></Value>
<Type>String</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name>l_title</Name>
<Value><![CDATA["show image of reflected wave"]]></Value>
<Type>String</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name></Name>
<Value><![CDATA[]]></Value>
<Type>String</Type>
<Dimension></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>

</Content>
</Osejs.Model.Variables.Page>
</Osejs.Model.Variables>
<Osejs.Model.Initialization>
<Osejs.Model.Initialization.Page>
<Type>CODE_EDITOR</Type>
<Name>初始值</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
for(int i=0;i<n;i++){
 d[i]=vd[i]=d2[i]=0;
}
ds=(xc-x)*2;
]]></Code>

</Content>
</Osejs.Model.Initialization.Page>
</Osejs.Model.Initialization>
<Osejs.Model.Evolution>
<Osejs.Model.Evolution.Page>
<Type>ODE_EDITOR</Type>
<Name>ODE</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<IndependentVariable>t</IndependentVariable>
<Increment>dt</Increment>
<Rate state="d[i]">vd[i]</Rate>
<Method>MidPoint</Method>
<Tolerance></Tolerance>
<Comment><![CDATA[]]></Comment>

</Content>
</Osejs.Model.Evolution.Page>
</Osejs.Model.Evolution>
<Osejs.Model.Constraints>
<Osejs.Model.Constraints.Page>
<Type>CODE_EDITOR</Type>
<Name>關係式</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
ds=(xc-x)*2;
for(int i=0;i<n;i++){
 if(i<(int)t)vd[i]=vi;
 if(d[i]>(n-i)*vi)d[i]-=vi;
 if(d[i]>ds)d2[i]=d[i];
 else d2[i]=0.;
}
]]></Code>

</Content>
</Osejs.Model.Constraints.Page>
</Osejs.Model.Constraints>
<Osejs.Model.Library>
<Osejs.Model.Library.Page>
<Type>LIBRARY_EDITOR</Type>
<Name>chinese</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
public void zh_tw () {
 l_play="播放";
 l_init="初始化";
 l_reset="重設";
 l_pause="暫停";
 l_step="前進一格";
 label=l_play;
 l_title="顯示反射波的鏡像";
}
public void locale(String type){
 if(type.equals("zh_tw"))zh_tw();
 _initialize();
}
]]></Code>

</Content>
</Osejs.Model.Library.Page>
<Osejs.Model.Library.Page>
<Type>LIBRARY_EDITOR</Type>
<Name>playpause</Name>
<Active>true</Active>
<Visible>true</Visible>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
public void playpause () {
 if(label==l_play){
  label=l_pause;
  _play();
 }else{
  label=l_play;
  _pause();
 }
}
]]></Code>

</Content>
</Osejs.Model.Library.Page>
</Osejs.Model.Library>
</Osejs.Model>
<Osejs.View>
<Osejs.View.Creation>
<Osejs.View.Creation.Element>
<Expanded>true</Expanded>
<Type>Elements.Frame</Type>
<Property name="name">Frame</Property>
<Property name="_ejs_mainWindow">true</Property>
<Property name="title"><![CDATA[Frame]]></Property>
<Property name="layout"><![CDATA[border]]></Property>
<Property name="visible"><![CDATA[true]]></Property>
<Property name="location"><![CDATA["8,0"]]></Property>
<Property name="size"><![CDATA["664,358"]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Expanded>true</Expanded>
<Type>Elements.Panel</Type>
<Property name="name">Panel</Property>
<Property name="parent">Frame</Property>
<Property name="position">south</Property>
<Property name="layout"><![CDATA[hbox]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Button</Type>
<Property name="name">reset</Property>
<Property name="parent">Panel</Property>
<Property name="text"><![CDATA[%l_reset%]]></Property>
<Property name="enabled"><![CDATA[_isPaused]]></Property>
<Property name="action"><![CDATA[_reset()]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Button</Type>
<Property name="name">initialize</Property>
<Property name="parent">Panel</Property>
<Property name="text"><![CDATA[%l_init%]]></Property>
<Property name="enabled"><![CDATA[_isPaused]]></Property>
<Property name="action"><![CDATA[_initialize()]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Button</Type>
<Property name="name">playpause</Property>
<Property name="parent">Panel</Property>
<Property name="text"><![CDATA[%label%]]></Property>
<Property name="enabled"><![CDATA[true]]></Property>
<Property name="action"><![CDATA[playpause()]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.CheckBox</Type>
<Property name="name">CheckBox</Property>
<Property name="parent">Panel</Property>
<Property name="variable"><![CDATA[show]]></Property>
<Property name="text"><![CDATA[%l_title%]]></Property>
<Property name="action"><![CDATA[if(show)clr=clr2;
else clr=clr1;]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Expanded>true</Expanded>
<Type>Elements.DrawingPanel</Type>
<Property name="name">DrawingPanel</Property>
<Property name="parent">Frame</Property>
<Property name="position">center</Property>
<Property name="autoscaleX"><![CDATA[false]]></Property>
<Property name="autoscaleY"><![CDATA[false]]></Property>
<Property name="minimumX"><![CDATA[xmin]]></Property>
<Property name="maximumX"><![CDATA[xmax]]></Property>
<Property name="minimumY"><![CDATA[ymin]]></Property>
<Property name="maximumY"><![CDATA[ymax]]></Property>
<Property name="square"><![CDATA[true]]></Property>
<Property name="background"><![CDATA[200,220,208]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.ParticleSet</Type>
<Property name="name">ParticleSetr</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="elementnumber"><![CDATA[n]]></Property>
<Property name="x"><![CDATA[-x]]></Property>
<Property name="y"><![CDATA[y]]></Property>
<Property name="sizex"><![CDATA[d2]]></Property>
<Property name="sizey"><![CDATA[d2]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="color"><![CDATA[null]]></Property>
<Property name="stroke"><![CDATA[stroke]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Particle</Type>
<Property name="name">rightbase</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[xc]]></Property>
<Property name="y"><![CDATA[ymiin]]></Property>
<Property name="sizex"><![CDATA[xmax*1.2]]></Property>
<Property name="sizey"><![CDATA[range*1.2]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="style"><![CDATA[RECTANGLE]]></Property>
<Property name="elementposition"><![CDATA[WEST]]></Property>
<Property name="color"><![CDATA[200,220,208]]></Property>
<Property name="secondaryColor"><![CDATA[200,220,208]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Arrow</Type>
<Property name="name">Vline</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[xc]]></Property>
<Property name="y"><![CDATA[ymin]]></Property>
<Property name="sizex"><![CDATA[zero]]></Property>
<Property name="sizey"><![CDATA[ymax-ymin]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="style"><![CDATA[SEGMENT]]></Property>
<Property name="stroke"><![CDATA[stroke]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.ParticleSet</Type>
<Property name="name">ParticleSet</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="elementnumber"><![CDATA[n]]></Property>
<Property name="x"><![CDATA[x]]></Property>
<Property name="y"><![CDATA[y]]></Property>
<Property name="sizex"><![CDATA[d]]></Property>
<Property name="sizey"><![CDATA[d]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="color"><![CDATA[null]]></Property>
<Property name="stroke"><![CDATA[stroke]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Particle</Type>
<Property name="name">rightbase2</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[xc]]></Property>
<Property name="y"><![CDATA[ymin]]></Property>
<Property name="sizex"><![CDATA[xmax*1.2]]></Property>
<Property name="sizey"><![CDATA[range*1.2]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="style"><![CDATA[RECTANGLE]]></Property>
<Property name="elementposition"><![CDATA[SOUTH_WEST]]></Property>
<Property name="color"><![CDATA[clr]]></Property>
<Property name="secondaryColor"><![CDATA[clr]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Particle</Type>
<Property name="name">Particle</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[x]]></Property>
<Property name="y"><![CDATA[y]]></Property>
<Property name="sizex"><![CDATA[size2]]></Property>
<Property name="sizey"><![CDATA[size2]]></Property>
<Property name="enabled"><![CDATA[true]]></Property>
<Property name="dragaction"><![CDATA[if(x>xc-size)x=xc-size;]]></Property>
</Osejs.View.Creation.Element>
</Osejs.View.Creation>
</Osejs.View>
<Osejs.Experiment>
</Osejs.Experiment>
</Osejs>
