Your browser does not support Java, so nothing is displayed.

Try downloading the executable jar file.

Download SwimSim.jar, (The Java Application version). On a Mac, you may need to right-click (2 finger click) and select "OPEN WITH > JavaLauncher.app" then press the "OPEN" button


The left pair of input fields are specifying the speed and direction of the water (that is, the current), and the right pair is for the speed and direction of the swimmer. The direction is specified by the compass direction, so North is 0, East is 90, South is 180, one degree north of West is 271, etc.

Instructions and Questions

  1. To get aquainted, have the water flow 3 knots Northeast (45 degrees on the compass), and point the swimmer Northwest (this is a relative angle, so 0 degrees is straight ahead... in this case type -45 degrees) with the same speed (3 knots). Press the start button to see if the swimmer goes north.

  2. If something goes wrong, wait untill the swimmer comes around again and press the stop button. If it is really messed up, reload (or refresh) the page to reset everything.

  3. Keep the same speed of the current (3 knots) and Compass direction (45). Keep the swimmer also at 3 knots (the swimmer controls are on the right side). What directon makes the swimmer swim dur south?

  4. Now has the swimmer swim swim straight ahead (0 degrees is the direction). The water is now drifting him to the right. What is the vector that he's moving in?

  5. The answer to the last question is actually the sum to two vectors: the water vector and the swimmer's vector. The magnitude of this vector is the speed the swimmer is actually moving. Is the water helping or hurting the swimmer's progress?

  6. Now change the swimmer's speed to only 2 knots. Is the -45 degrees Direction enough to get the swimmer to swim north?

  7. What is the angle that the swimmer is moving now?

  8. What angle does the swimmer need to point to (the Direction value) so that he goes north when the current's speed is 3 and the swimmer's speed is only 2 (You have it perfect when the polar anlge is 90 and the compass diection is 0)?

  9. Draw the current vector, and draw the swimmer vector starting at the end of the current vector. The sum of the two is the vector that connects the beginning to the end... it should point straight up (north). Magnitude of this vector sum represents the speed travelling north. What is the speed?

Click here to see Fr. Chris' source code.

Click here to download the executable jar file.

(The Java Application version). On a Mac, you may need to right-click (2 finger click) and select "OPEN WITH > JavaLauncher.app" then press the "OPEN" button This is written Java, so you may need to download the latest Java Runtime Environment from java.com. On Windows you should be able to simply double-click the jar file. The Mac OS discourages Java applications (they have no control over it) so you may need to control-click (right-click), and dismiss the warning.

You can type decimals like 92.7, but the resolution here is not really that great, and you can tell from the vector values that there is some rounding error (the Java VM likes radians, so there's some loss of precision in the conversion).

This is designed to make sense of some of the word problems in Chapter 10, like number 21 of Section 10.3 and number 75 in section 10.

You can download the jar file where I have included the source code, but you need to install the Java SDK to play with it. I used the IDE called BlueJ, so there are some extra files in the jar file for that as well. You can get your free copy at www.bluej.org You can tell from the (x,y) co-ords that it works like the 4th quadrant in the land of Java, where the top left is (0,0) -- normally in the world of the first quadrant, (0,0) is the bottom left corner -- I suppose this system makes sense if you read in a language where you start at the top left corner of the page. Hope this is interesting and/or helpful!