<!-- This XML file has been created by Easy Java Simulations (Ejs). Visit http://www.um.es/fem/Ejs. -->
<!-- Please, save the file to your hard disk on your Ejs' user directory and open it with Ejs. -->
<Osejs version="4.1">
<Osejs.Information>
<Title><![CDATA[]]></Title>
<Author><![CDATA[Fu-Kwun Hwang]]></Author>
<Keywords><![CDATA[]]></Keywords>
<Level><![CDATA[]]></Level>
<Language><![CDATA[]]></Language>
<Abstract><![CDATA[]]></Abstract>
<CaptureTools>true</CaptureTools>
<DataTools>true</DataTools>
<LanguageTools>true</LanguageTools>
<AdditionalLibraries>
</AdditionalLibraries>
<ImportStatements>
</ImportStatements>
<AuxiliaryFiles><![CDATA[]]></AuxiliaryFiles>
<DetectedFiles><![CDATA[]]></DetectedFiles>
</Osejs.Information>
<Osejs.Description>
<Osejs.Description.Page>
<Type>DESCRIPTION_EDITOR</Type>
<Name>Intro Page</Name>
<Active>true</Active>
<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.StepsPerDisplay>1</Osejs.Model.StepsPerDisplay>
<Osejs.Model.Autostart>false</Osejs.Model.Autostart>
<Osejs.Model.Variables>
<Osejs.Model.Variables.Page>
<Type>VARIABLE_EDITOR</Type>
<Name>coordinate</Name>
<Active>true</Active>
<Content>
<PageComment><![CDATA[]]></PageComment>
<Variable>
<Name><![CDATA[range]]></Name>
<Value><![CDATA[200]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[range]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[xmin]]></Name>
<Value><![CDATA[-range]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[xmax]]></Name>
<Value><![CDATA[range]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[ymin]]></Name>
<Value><![CDATA[-range/2]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[ymax]]></Name>
<Value><![CDATA[range/2]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[t]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dt]]></Name>
<Value><![CDATA[0.05]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[time step]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[size]]></Name>
<Value><![CDATA[range/20]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[particle size]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[size2]]></Name>
<Value><![CDATA[size/8]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[stroke]]></Name>
<Value><![CDATA[2.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[xc]]></Name>
<Value><![CDATA[(xmin+xmax)/2]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[clr1]]></Name>
<Value><![CDATA[new java.awt.Color(192,192,192)]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[clr2]]></Name>
<Value><![CDATA[new java.awt.Color(192,192,192,128)]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[clr]]></Name>
<Value><![CDATA[clr1]]></Value>
<Type><![CDATA[Object]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[show]]></Name>
<Value><![CDATA[false]]></Value>
<Type><![CDATA[boolean]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[showr]]></Name>
<Value><![CDATA[false]]></Value>
<Type><![CDATA[boolean]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[pi]]></Name>
<Value><![CDATA[Math.PI]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[]]></Name>
<Value><![CDATA[]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>

</Content>
</Osejs.Model.Variables.Page>
<Osejs.Model.Variables.Page>
<Type>VARIABLE_EDITOR</Type>
<Name>basic</Name>
<Active>true</Active>
<Content>
<PageComment><![CDATA[]]></PageComment>
<Variable>
<Name><![CDATA[n]]></Name>
<Value><![CDATA[50]]></Value>
<Type><![CDATA[int]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[n1]]></Name>
<Value><![CDATA[n-1]]></Value>
<Type><![CDATA[int]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[n2]]></Name>
<Value><![CDATA[n+1]]></Value>
<Type><![CDATA[int]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[x]]></Name>
<Value><![CDATA[xmin/3]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[y]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[vx]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[vy]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dx]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dy]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[xr]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[yr]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[vxr]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[vyr]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dxr]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dyr]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[vi]]></Name>
<Value><![CDATA[3.*size]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[wavelength]]></Name>
<Value><![CDATA[2.*size]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[d]]></Name>
<Value><![CDATA[ymax*1.2]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[x2]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n2]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[y2]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n2]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dx2]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n2]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dy2]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[[n2]]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[ni]]></Name>
<Value><![CDATA[4/3.]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[index of refraction]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[c1]]></Name>
<Value><![CDATA[pi/6]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[c2]]></Name>
<Value><![CDATA[Math.asin(Math.sin(c1)/ni)]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[cs1]]></Name>
<Value><![CDATA[Math.cos(c1)]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[sc1]]></Name>
<Value><![CDATA[Math.sin(c1)]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[cs2]]></Name>
<Value><![CDATA[Math.cos(c2)]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[sc2]]></Name>
<Value><![CDATA[Math.sin(c2)]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[d1]]></Name>
<Value><![CDATA[d/cs1]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[d2]]></Name>
<Value><![CDATA[d1*cs2]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[id]]></Name>
<Value><![CDATA[1]]></Value>
<Type><![CDATA[int]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[nr]]></Name>
<Value><![CDATA[n1]]></Value>
<Type><![CDATA[int]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[wavelength2]]></Name>
<Value><![CDATA[wavelength/ni]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[dd]]></Name>
<Value><![CDATA[0.0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[cta]]></Name>
<Value><![CDATA[29.9988]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[zero]]></Name>
<Value><![CDATA[0]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[]]></Name>
<Value><![CDATA[]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>

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

</Content>
</Osejs.Model.Variables.Page>
<Osejs.Model.Variables.Page>
<Type>VARIABLE_EDITOR</Type>
<Name>view</Name>
<Active>true</Active>
<Content>
<PageComment><![CDATA[]]></PageComment>
<Variable>
<Name><![CDATA[arrowx]]></Name>
<Value><![CDATA[d*cs2]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[arrowy]]></Name>
<Value><![CDATA[-d*sc2]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></Dimension>
<Comment><![CDATA[]]></Comment>
</Variable>
<Variable>
<Name><![CDATA[]]></Name>
<Value><![CDATA[]]></Value>
<Type><![CDATA[double]]></Type>
<Dimension><![CDATA[]]></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>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
x2[0]=y2[0]=2*xmin;
c1=cta*pi/180.;
c2=Math.asin(Math.sin(c1)/ni);
cs1=Math.cos(c1);
sc1=Math.sin(c1);
cs2=Math.cos(c2);
sc2=Math.sin(c2);
d1=d/cs1;
d2=d1*cs2;

x[0]=xc-d*cs1-d*sc1/2;
y[0]=d*sc1-d*cs1/2;
dx[0]=d*sc1;
dy[0]=d*cs1;
vx[0]=-vi*cs1;
vy[0]=-vi*sc1;
for(int i=1;i<n;i++){
 x[i]=x[i-1]-wavelength*cs1;
 y[i]=y[i-1]+wavelength*sc1;
 dx[i]=d*sc1;
 dy[i]=d*cs1;
}
for(int i=0;i<n;i++){//reflected wave
 xr[i]=-x[i];//reflected wave
 yr[i]=y[i];
 dxr[i]=-dx[i];
 dyr[i]=dy[i];
  vxr[i]=-vi*cs1;
  vyr[i]=-vi*sc1;
}
nr=n-1;
n1=n-1;
arrowx=-d*cs1;
arrowy=d*sc1;

]]></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>
<Content>
<PreliminaryCode>
<Comment><![CDATA[Code to be executed before rate equations are evaluated]]></Comment>
<Code><![CDATA[

]]></Code>
</PreliminaryCode>
<IndependentVariable>t</IndependentVariable>
<Increment>dt</Increment>
<Increment>dt</Increment>
<Rate state="x[i]">vx[i]</Rate>
<Rate state="y[i]">vy[i]</Rate>
<Rate state="xr[i]">vxr[i]</Rate>
<Rate state="yr[i]">vyr[i]</Rate>
<Rate state=""></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>
<Content>
<Comment><![CDATA[]]></Comment>
<Code><![CDATA[
id=1;
for(int i=0;i<n;i++){
 if((x[i]>xmax/2. && y[i]+dy[i]<ymin) || x[i]>xmax  ){
  x[i]=x[n1]-wavelength*cs1;
  y[i]=y[n1]+wavelength*sc1;
  dx[i]=d*sc1;
  dy[i]=d*cs1;
   vx[i]=vi*cs1;
   vy[i]=-vi*sc1;
  n1=i;
 } 
 if(xr[i]<xmin || yr[i]+dyr[i]<ymin){
  xr[i]=xr[nr]+wavelength*cs1;
  yr[i]=yr[nr]+wavelength*sc1;
   nr=i;
 }
 if(x[i]<xc){ 
   dx[i]=d*sc1;
   dy[i]=d*cs1;
   vx[i]=vi*cs1;
   vy[i]=-vi*sc1;
 }else{
  dx[i]=d2*sc2;
  dy[i]=d2*cs2;
   vx[i]=vi*cs2/ni;
   vy[i]=-vi*sc2/ni;
 }
 if(x[i]<xc && x[i]+dx[i]>xc){
   dx[i]=xc-x[i];
   dy[i]=dx[i]/sc1*cs1;
   x2[id]=x[i]+dx[i];
   y2[id]=y[i]+dy[i];
  dd=(d1-dx[i]/sc1/cs1)*cs2;
  dx2[id]=dd*sc2;
  dy2[id]=dd*cs2;
  id++;
 }
}
]]></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>
<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>
<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,13"]]></Property>
<Property name="size"><![CDATA["745,508"]]></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.Slider</Type>
<Property name="name">Slidernii</Property>
<Property name="parent">Panel</Property>
<Property name="variable"><![CDATA[ni]]></Property>
<Property name="minimum"><![CDATA[1.0]]></Property>
<Property name="maximum"><![CDATA[3.0]]></Property>
<Property name="format"><![CDATA["index of refraction=0.00"]]></Property>
<Property name="enabled"><![CDATA[_isPaused()]]></Property>
<Property name="dragaction"><![CDATA[_initialize()]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Slider</Type>
<Property name="name">Sliderctaa</Property>
<Property name="parent">Panel</Property>
<Property name="variable"><![CDATA[cta]]></Property>
<Property name="minimum"><![CDATA[0.0]]></Property>
<Property name="maximum"><![CDATA[60.0]]></Property>
<Property name="format"><![CDATA["cta=0.0 degree"]]></Property>
<Property name="ticks"><![CDATA[13]]></Property>
<Property name="closest"><![CDATA[true]]></Property>
<Property name="enabled"><![CDATA[_isPaused()]]></Property>
<Property name="dragaction"><![CDATA[_initialize()]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Expanded>false</Expanded>
<Type>Elements.Panel</Type>
<Property name="name">Panel3</Property>
<Property name="parent">Panel</Property>
<Property name="layout"><![CDATA[grid:0,1,0,0]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.CheckBox</Type>
<Property name="name">CheckBox</Property>
<Property name="parent">Panel3</Property>
<Property name="variable"><![CDATA[show]]></Property>
<Property name="selected"><![CDATA[false]]></Property>
<Property name="text"><![CDATA[info]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.CheckBox</Type>
<Property name="name">reflected</Property>
<Property name="parent">Panel3</Property>
<Property name="variable"><![CDATA[showr]]></Property>
<Property name="text"><![CDATA[reflected]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Expanded>false</Expanded>
<Type>Elements.Panel</Type>
<Property name="name">Panel2</Property>
<Property name="parent">Panel</Property>
<Property name="layout"><![CDATA[grid:0,1,0,0]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Button</Type>
<Property name="name">reset</Property>
<Property name="parent">Panel2</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">playpause</Property>
<Property name="parent">Panel2</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>
<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.ArrowSet</Type>
<Property name="name">ArrowSet3</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="elementnumber"><![CDATA[n]]></Property>
<Property name="x"><![CDATA[xr]]></Property>
<Property name="y"><![CDATA[yr]]></Property>
<Property name="sizex"><![CDATA[dxr]]></Property>
<Property name="sizey"><![CDATA[dyr]]></Property>
<Property name="visible"><![CDATA[showr]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="style"><![CDATA[SEGMENT]]></Property>
<Property name="color"><![CDATA[gray]]></Property>
<Property name="secondaryColor"><![CDATA[gray]]></Property>
<Property name="stroke"><![CDATA[stroke]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Particle</Type>
<Property name="name">base</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[xc]]></Property>
<Property name="y"><![CDATA[ymin*1.2]]></Property>
<Property name="sizex"><![CDATA[xmax]]></Property>
<Property name="sizey"><![CDATA[(ymax-ymin)*1.2]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="style"><![CDATA[RECTANGLE]]></Property>
<Property name="elementposition"><![CDATA[SOUTH_WEST]]></Property>
<Property name="secondaryColor"><![CDATA[black]]></Property>
<Property name="color"><![CDATA[200,220,208]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Arrow</Type>
<Property name="name">ArrowH</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[xmin]]></Property>
<Property name="y"><![CDATA[zero]]></Property>
<Property name="sizex"><![CDATA[xmax-xmin]]></Property>
<Property name="sizey"><![CDATA[zero]]></Property>
<Property name="visible"><![CDATA[show]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="style"><![CDATA[SEGMENT]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.ArrowSet</Type>
<Property name="name">ArrowSet2</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="elementnumber"><![CDATA[id]]></Property>
<Property name="x"><![CDATA[x2]]></Property>
<Property name="y"><![CDATA[y2]]></Property>
<Property name="sizex"><![CDATA[dx2]]></Property>
<Property name="sizey"><![CDATA[dy2]]></Property>
<Property name="visible"><![CDATA[id>1]]></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.Arrow</Type>
<Property name="name">Vline</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[xc]]></Property>
<Property name="y"><![CDATA[ymin*1.5]]></Property>
<Property name="sizex"><![CDATA[zero]]></Property>
<Property name="sizey"><![CDATA[(ymax-ymin)*1.5]]></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.ArrowSet</Type>
<Property name="name">ArrowSet</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[dx]]></Property>
<Property name="sizey"><![CDATA[dy]]></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.Arrow</Type>
<Property name="name">Arrowin</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[arrowx]]></Property>
<Property name="y"><![CDATA[arrowy]]></Property>
<Property name="sizex"><![CDATA[d*cs1]]></Property>
<Property name="sizey"><![CDATA[-d*sc1]]></Property>
<Property name="visible"><![CDATA[show]]></Property>
<Property name="enabledSecondary"><![CDATA[true]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="dragaction"><![CDATA[if(arrowx>0)arrowx=0;
if(arrowy<0)arrowy=0;
c1=Math.atan2(arrowy,-arrowx);
cta=c1*180/pi;
_initialize();]]></Property>
<Property name="color"><![CDATA[blue]]></Property>
<Property name="secondaryColor"><![CDATA[blue]]></Property>
<Property name="stroke"><![CDATA[stroke]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Arrow</Type>
<Property name="name">Arrowout</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[0]]></Property>
<Property name="y"><![CDATA[0]]></Property>
<Property name="sizex"><![CDATA[d*cs2]]></Property>
<Property name="sizey"><![CDATA[-d*sc2]]></Property>
<Property name="visible"><![CDATA[show]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="color"><![CDATA[blue]]></Property>
<Property name="secondaryColor"><![CDATA[blue]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Particle</Type>
<Property name="name">base2</Property>
<Property name="parent">DrawingPanel</Property>
<Property name="x"><![CDATA[xc]]></Property>
<Property name="y"><![CDATA[ymin*1.2]]></Property>
<Property name="sizex"><![CDATA[xmax]]></Property>
<Property name="sizey"><![CDATA[(ymax-ymin)*1.2]]></Property>
<Property name="enabled"><![CDATA[false]]></Property>
<Property name="style"><![CDATA[RECTANGLE]]></Property>
<Property name="elementposition"><![CDATA[SOUTH_WEST]]></Property>
<Property name="secondaryColor"><![CDATA[black]]></Property>
<Property name="color"><![CDATA[200,220,208,128]]></Property>
</Osejs.View.Creation.Element>
<Osejs.View.Creation.Element>
<Type>Elements.Slider</Type>
<Property name="name">Sliderd</Property>
<Property name="parent">Frame</Property>
<Property name="position">east</Property>
<Property name="variable"><![CDATA[d]]></Property>
<Property name="minimum"><![CDATA[ymax/2]]></Property>
<Property name="maximum"><![CDATA[ymax*1.5]]></Property>
<Property name="orientation"><![CDATA[VERTICAL]]></Property>
<Property name="enabled"><![CDATA[_isPaused()]]></Property>
<Property name="dragaction"><![CDATA[_initialize()]]></Property>
</Osejs.View.Creation.Element>
</Osejs.View.Creation>
</Osejs.View>
<Osejs.Experiment>
</Osejs.Experiment>
</Osejs>
