Meet Arnold:
An Articulated Robot Figure
[Description] [Instructions] [Java Source] [Dave's Home Page] [Next Demo]
Description
I first learned Java for a graduate course in graphics programming
at NYU. At the time, the language was still in alpha, although
during the course of that semester, the beta version came out.
This applet was the final project for that course. It's not the
best Java code on the planet, and not at all optimized for performance,
but it works.
Arnold is a three-dimensional, articulated robot figure, drawn in wireframe,
who can be positioned interactively by the user. The user can
also use the keyboard to interactively reposition the camera to
look at Arnold from any angle. Be patient; he draws himself very slowly!
[Top] [Description] [Instructions] [Java Source] [Dave's Home Page] [Next Demo]
Instructions
- Select a body part from the menu. Use the scrollbars to set its
rotation around the three axes. Note that most of the body parts
can only rotate around one axis. As they say, this is not a "bug,"
but a "feature." I wanted to design the robot to look realistic,
and it wouldn't have looked realistic if the body parts intersected
in space.
- The scrollbar at the bottom rotates the body part around the y axis of its attachment point, relative to its default position.
The scrollbars at the left and the right have a similar effect,
but around the z and x axes, respectively.
- Note that the Pelvis is the root of the figure, and so rotating
the pelvis rotates the entire figure in space.
- The Camera can be moved around as follows:
| Modifier |
Key |
Effect |
|
|
|
| none |
up arrow |
move camera forward |
| down arrow |
move camera backward |
| left arrow |
turn camera left |
| right arrow |
turn camera right |
|
|
|
| shift |
up arrow |
tilt camera upwards |
| down arrow |
tilt camera downwards |
| left arrow |
slide camera left |
| right arrow |
slide camera right |
|
|
|
| shift-ctrl |
up arrow |
slide camera upwards |
| down arrow |
slide camera downwards |
| left arrow |
roll camera left |
| right arrow |
roll camera right |
[Top] [Description] [Instructions] [Java Source] [Dave's Home Page] [Next Demo]
Java Source Files
default package;
RobotApplet.java
package myGraphics.VectorGrafix;
Matrix.java
Matrix2d.java
Matrix3d.java
Transformation2d.java
Transformation3d.java
Vector.java
Vector2d.java
Vector3d.java
package myGraphics.Shape3d;
Path.java
PathTableEntry.java
Shape.java
package myGraphics.Perspective;
Camera.java
Viewport.java
package myGraphics.Kinematics;
Figure.java
Model.java
StackMachine.java
[Top] [Description] [Instructions] [Java Source] [Dave's Home Page] [Next Demo]