**Work plans**

* Transformation (move x y z) * Rotation (rotate n degrees in the x, m in y, c in z) * Scaling (make the thing .5 times it's current size in the z axis) * Textures (apply this image to all the surface on the object)

**Transformation**

*(z_eye, 0)*, point C at (

*z_obj, h_obj*) is projected as point B on the stage as follows:

Add caption |

We can apply the same idea on the X-Axis too. So if we can implement this idea perfectly, then object movements on the Z-axis look naturally. However, what I have implemented so far is not perfect -- when moving an object in the Z direction, I only change the size of the object, but keep the x and y coordinates the same. This is illustrated in the following example:

The center of the object does not change and is always at

*(x, y) = (100, 100)*-- logically and physically. In this example, the viewpoint is at

*(x, y, z) = (0, 0, 200)*, so following the idea presented above, the projected X and Y coordinates on the stage should be:

- For
*(x, y, z) = (100, 100, -100): (x_proj, y_proj) = (66.67, 66.67)* - For
*(x, y, z) = (100, 100, 100) : (x_proj, y_proj) = (200, 200)*

**s**as well as physical coordinates on the stage

**,**but it causes a major change to the existing 2D system. So, it might be less problematic if we keep the 3D system as it is currently implemented.