Mathematical Visualization SS07 Technical University Berlin

Assignment 3

Theme: More jReality programming + homogeneous coordinates

Note: there is a rudimentary tutorial for jReality programming which I failed to mention in the previous assignment. In particular, there is an introduction to the geometry factories (especially useful since these often lack JavaDoc documentation). The images are out-of-date with the current version of the ViewerApp application.

Part 1. Programming project 2

In eclipse, update the MathVisSS07 project:
  • In the Package Explorer, select the project MathVisSS07 and use the right-mouse context menu to select "Team->Synchronize with Repository".
  • In the CVS Synchronize perspective (which should appear automatically) select the project MathVisSS07 and use the context menu to select "Update"
  • Reselect the Java perspective when the update is finished.

Back in the Package Explorer, you should find a new class file Assignment03.java. To explore this class:

  • Use the "Run as...->Java application" context-menu item to run the new application.
  • You should see a torus in the 3D graphics window.
  • Click in the window and type 'e' to encompass the geometry (which makes it bigger than at start-up).
  • Also, drag the divider between the navigator panel and the 3D graphics window to make the navigator about twice as wide as on start-up.
  • You should see a tab titled "Torus" in the navigator panel. Select it.
  • Play with the slider labeled "R" in this tab, and see that it controls the large radius of the torus.
  • Click on the "animate" check box on this tab. You should see the major radius of the torus change its value automatically, until you click again to stop this animation.
  • Open the class file Assignment03.java in the Java editor and study it to see how what you see in the application was created in the source code of the class:
    • the geometry of the torus (using the ParametricSurfaceFactory)
    • the appearance of the torus (vertices, edges, and faces)
    • the inspection panel for the large radius
    • the animation of the large radius.

The assignment is to modify Assignment03 in the following ways, and then turn it in as you turned in last week's assignment using CVS.

  • Redefine the Immersion used to produce a different surface than a torus. It should include 3 parameters, and you should create an inspector panel for these three parameters to allow interactive control of the shape of the surface.
  • Additionally use transformations (as in Assignment02) to make 4 copies of the surface, each of which is attached to a different appearance. Customize these four appearances in ways which you find meaninful for the better understanding of the surface.
  • Both the slider and the check box change the value of the large radius. Devise a strategy to keep these values synchronized and implement it if possible. If not practical to implement, write up your strategy as a comment in the source file of your assignment.

Part 2. Mathematics

From this exercise sheet, do Problem 2, Homogeneous Coordinates. The exercise uses notation which I will explain in the Uebung session this afternoon (May 2). If you miss the Uebung, please be sure to contact me to clarify the notation.