*If you’re unfamiliar with the concept and/or ideas of flatland, this post might not make a lot of sense to you. If you don’t want to read up on flatland, here’s a nice image which does a (decent) job of visualizing the concept behind this post:*

Consider a cuboid with the dimensions X,Y,Z along the three spacial dimensions. Imagine taking said cuboid and slowly descending it through a 2-dimensional plane. How would this look?

If we merely took a 1x1x1 cuboid without any rotation, this would be a square popping in and out of existence obviously. But how would this look if we allow the cube to rotate?

We define an initial rotation on the cube across the 3 dimensions (XY, XZ, YZ) and a gradual rotation (XY, XZ, YZ) as well. The cube will be rotated around its center-point, as it’s the most intuitive to do so.

**If you don’t want the mathematical details, you can download the .jar file here:**

Download link

We define the 8 vertices of the cuboid as 8 3-dimensional vectors positioned according to the center of the cube. We also define a rotation function *r(x)* for each of the vectors (which is simply a rotational matrix).

**Definition: **Rotating the *cuboid (*XY, XZ, YZ) means to rotate each of the 8 vectors (XY, XZ, YZ).

Next up, we need to define a *cross-section *of the cube at a certain height *t*.

**Definition**: A line segment is a line going from a point to another point. In this case*vectors*. A line segment is a line going from the end of one vector to the end of another vector.

The cuboid contains 12 line segments.

**Definition**: An *intersection* is the point where a 3-dimensional line and a 2-dimensional plane at height *t *intersect.

**Definition: **A cross-section of the cuboid is the set of *intersections* for each line segment in the cuboid and an infinite 2-dimensional plane (X, Z) at height *t* (y=t).

We get the cross-section of the cuboid and draw the convex hull of this collection of points.

Going at constant rate for *t *we get an animation of the cuboid going through flatland (rotating the cuboid for each term).

This was really vaguely described, but I don’t really feel like going into too many details.

### Like this:

Like Loading...

*Related*