Skip to content

Commit

Permalink
Updated model.md and fixed references, see #191
Browse files Browse the repository at this point in the history
  • Loading branch information
samreid committed Nov 26, 2018
1 parent 1064e6b commit 283319f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
14 changes: 12 additions & 2 deletions doc/model.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,20 @@ at d*sin(theta) = m*lambda.

# Slits Screen

This screen provides an incoming plane wave, and the user can control the location of the barrier and the number of
This screen provides an incoming plane wave, and the user can control the location of the barrier, the number of
slits and the location and width of the slits. According to the Huygens-Fresnel principle, each part of the wave
produces spherical waves, and hence the part that passes through the slit produces spherical waves.

# Diffraction Screen
For double-slit (where d is the separation between centers of the slits):
d sin(θ) = mλ for maxima,
d sin(θ) = (m + 1/2)λ for minima
see http://electron9.phys.utk.edu/optics421/modules/m1/diffraction_and_interference.htm

For single slit (where a is the width of the aperture):
a sin(θ) = mλ for minima
a sin(θ) = (m+1/2)λ for maxima
see http://hyperphysics.phy-astr.gsu.edu/hbase/phyopt/sinslit.html

# Diffraction Screen (under development)

The diffraction pattern is computed as the discrete Fast Fourier Transform of the input pattern.
7 changes: 4 additions & 3 deletions js/slits/view/TheoryInterferenceOverlay.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ define( require => {

const updateLines = () => {
this.removeAllChildren();
const barrierType = model.barrierTypeProperty.get();
const barrierType = model.sceneProperty.value.barrierTypeProperty.get();
if ( barrierType !== BarrierTypeEnum.NO_BARRIER ) {

const scene = model.sceneProperty.value;
Expand Down Expand Up @@ -113,10 +113,11 @@ define( require => {
}
};

// When any of the relevant physical Properties change, update the lines.
model.barrierTypeProperty.link( updateLines );
model.sceneProperty.link( updateLines );
model.scenes.forEach( scene => {

// When any of the relevant physical Properties change, update the lines.
scene.barrierTypeProperty.link( updateLines );
scene.frequencyProperty.link( updateLines );
scene.slitSeparationProperty.link( updateLines );
scene.barrierLocationProperty.link( updateLines );
Expand Down

0 comments on commit 283319f

Please sign in to comment.