16April 2010
13 rearrange the buttons at the bottom to be more grouped logically
14 added flip magnet from SN to NS orientation!!!! figure out how to change the B field as well as the Get B
15 added accompanying graphics to the new orientation by doing a rotation 180 deg
16 added picture of compass licensed by This file is licensed under the Creative Commons Attribution ShareAlike 3.0 by Sofia from
http://en.wikipedia.org/wiki/File:Kompas_Sofia.JPG resize it to only 4 kb
17 change the evolution equation to domega/dt = -k*getB(xCompass, yCompass)[2]*(Math.sin(deltaTheta))-damp*omega so that the motion of the compass depends on the B strength at the location of the xCompass, yCompass.
18 change damping factor of compass to damp instead of b which was confusing to the calculations of b[0]....b[3] in the custom function
19 varied the value of k from 1 to 0.2 to simulate real life behavior closer less spring force constant since B vary from 0 to 225 arbitrary set by lookang
20 varied damp from 0.2 to 1 to simulate real life behavior closer damping higher more critically damped
There appears to be a runtime bug, the applet hangs if there is on drag on the compass for a long time, it jams, strange. how to fix ? hmmmm
Exception in thread "Thread-2" java.lang.ArrayIndexOutOfBoundsException: 21
at org.opensourcephysics.drawing2d.VectorField.processMagnitude(Unknown Source)
at org.opensourcephysics.drawing2d.VectorField.prepareField(Unknown Source)
at org.opensourcephysics.drawing2d.VectorField.draw(Unknown Source)
at org.opensourcephysics.display.DrawingPanel.paintDrawableList(Unknown Source)
at org.opensourcephysics.display.DrawingPanel.paintEverything(Unknown Source)
at org.opensourcephysics.display.DrawingPanel.render(Unknown Source)
at org.opensourcephysics.display.DrawingPanel.render(Unknown Source)
at org.colos.ejs.library.control.swing.ControlDrawablesParent.finalUpdate(Unknown Source)
at org.colos.ejs.library.control.EjsControl.finalUpdate(Unknown Source)
at org.colos.ejs.library.Animation.update(Unknown Source)
at org.colos.ejs.library.Animation.updateWhenIdle(Unknown Source)
at org.colos.ejs.library.control.EjsControl.updateSimulationWhenIdle(Unknown Source)
at org.colos.ejs.library.control.ControlElement.variablesChanged(Unknown Source)
at org.colos.ejs.library.control.drawing2d.ControlElement2D.propagatePosition(Unknown Source)
at org.colos.ejs.library.control.drawing2d.ControlElement2D.reportMouseMotion(Unknown Source)
at org.colos.ejs.library.control.drawing2d.ControlElement2D.interactionPerformed(Unknown Source)
at org.opensourcephysics.drawing2d.Element.invokeActions(Unknown Source)
at org.colos.ejs.library.control.swing.UpdateHotSpot2DDelayedAction.performAction(Unknown Source)
at org.colos.ejs.library.Animation.checkMethodsInvokedByView(Unknown Source)
at org.colos.ejs.library.Animation.update(Unknown Source)
at org.colos.ejs.library.Animation.step(Unknown Source)
at org.colos.ejs.library.Animation.run(Unknown Source)
at java.lang.Thread.run(Thread.java:637)
but in
public void _method_for_hideField_actionoff () { // line 634
hideField=false; // line 635
computeField(); // line 636
} // line 637 there is nothing

strange