Google Classroom
GeoGebraGeoGebra Classroom

Rotating Cube Projection with Explanation

[PREFACE]

Before we get into this, we have to first address probably the most important part of this, which is understanding orthographic projection on a 2D plane. Unfortunately, this is not very easy to explain on a whim. If you want to know more details about it, I can certainly get more into the details of the derivation, but not in this applet.

[Set Slider to 1]

For this case, I'll skip most of the derivation and tell you that in order to get this cube projection, the positions of the points are expressed in such a way that the top four and the bottom four vertices of the cube lie on "circles" which get squashed and shift over time. The most simplest case is when you set the crank to be oriented directly horizontal, which is equivalent to looking directly overhead or beneath. The positions of the points can be plotted based on the following: (cos(t), sin(t)), which is just a circle. However, when you adjust the crank on the right to some other angle, now they travel along an ellipse with a major axis equal to the circle's diameter, and a minor axis that is variable. Doing the derivation, as you rotate the cube along a horizontal axis at a constant rate, the ellipse's minor axis becomes warped by the cos(T), and the center of the ellipse is adjusted by the sin(T). (I'm using t and T to distinguish which parameter is being affected: t is rotation along its "pole", and T is rotation about the horizontal axis.)

[Set Slider to 2]

Before we deal with the movement of the ellipses up and down, let's just figure out how to squish the ellipse itself. Here, we just have the four points in the center. Two of the points are highlighted red, which are the ones which are most difficult to plot. Of the two, we'll just focus on one of them.

[Set Slider to 3]

First, we make a linkage capable of plotting the X-position of the point. This can be achieved using a linkage devised by Alfred Kempe, which can perform perfectly linear, sinusoidal motion. As the major axis of the ellipse doesn't change, this is all we need to figure out the X-position.

[Set Slider to 4]

Getting the Y-position is considerably more difficult, but not impossible! Here, we can re-express this sinusoidal motion being a component coming from a circle (in blue) that changes size. To get the component, you can use a "half" pantograph mechanism, shown in black. It does require two points that travel in a linear motion, so I've used two more of Kempe's linear linkages (greyed out.)

[Set Slider to 5]

Now, how do we get this linkage that can draw a circle of variable radius? Welllllll this is where things start to get pretty complicated, though I'll try to break it down: Again, we will use Kempe's linear linkage. The position of the point along the circle can be determined by adjusting the "ground" link of the linear linkage, while the actual linkage itself can shifted in and out as to allow for different radii.

[Set Slider to 6]

Now, we gotta power the linear linkage itself. Well, the actual links on it all move relative to the ground link, so whatever angle is set to them will just have to be added. As it turns out there's already a linkage for this! Explaining why it works explicitly is a bit much considering I'm rather tired admittedly as I am writing this, but here's the rough idea: Kempe's linear linkage can be used as an angle bisector as well, so if you have an angle A and angle B, you can strap Kempe's linkage onto them to get an angle C, which is equal to (A + B) / 2. Then you can simply multiply C by 2 using the angle bisector instead as a doubler, and you get A + B. (This is known as Kempe's adder.)

[Set Slider to 7]

Now that we have the really hard part out of the way, now we shift our focus back to the points determining the X-position and Y-position of the output. There's quite a lot of ways to do this, but one of my personal favorite is one that utilizes four parallelograms. This is a design that is used by Keishiro Ueki and Dearsip on Twitter for their mechanisms.

[Set Slider to 8]

So that's how you get one of the points on the ellipse. It's a LOT of work, but nonetheless, success! All of this is then (painfully) replicated onto the other 3 points, and you get the four points going around the ellipse!

[Set Slider to 9]

Alright, we're nearly there. If you recall from earlier, I said that "the center of the ellipse is adjusted by the sin(T)." Sinusoidal motion! Another Kempe linear linkage it is.

[Set Slider to 10]

Now, comes the last part! Chaining a lot of parallelogram linkages together, you can make a wire that relays information. Using this, I can translate the motion in the middle and move it over to the points. That gets four of the points.

[Set Slider to 11]

To get the last four points, you can use a pantograph, and that's it!