A fuller explanation of perspective matrices, and why perspective depth is linear in 1/Z, rather than in Z, is here.
The next assignment is a double assignment. You have two weeks to do it.
The first part of the assignment is to make a persistent applet. Log into the mmclass account on milhouse, and create a subdirectory at public-html. Link to this subdirectory from your usual homework site.
From the generic/ directory, copy into your subdirectory the files DB.java, GenericApplet.java and Test.java, and index.html. Make sure you can compile and run this applet (you'll probably want to add /usr/local/java/jdk1.2.2/bin to your path).
Now make your own persistent applet. As always, I give credit for being fun and original and creative. Think from the perspective of the user. Maybe they would like to help build something, and then come back later to see what other people have added to what they've built.
One thing you'll need to think through is how to encode the things that your user creates into key/value strings. For example, if you want to describe the position and angle of a car, you might tell the server:
DB.set("Fred's car x", "" + x); DB.set("Fred's car y", "" + y); DB.set("Fred's car angle", "" + angle);and then do the associated calls to DB.get, to retrieve this data.
The second part of the assignment is to make detailed and concrete suggestions about what you'd like to see in the group project. You can speak to the ideas I went over in class (these are still listed at the bottom of the main course page), or you can go off in a new direction. Feel free to work in groups of two or more for this part of the assignment. The goal is to reach a consensus, and to do something really interesting and new and exciting.
The direction that gets the greatest number of interesting, innovative and concrete suggestions will probably be the one to survive. If it turns out that two or more idea threads are very healthy, then I might split the class into different groups.