Parallelepiped shells
Structural features
We represent the length difference of each shell as an \(N\times3\) matrix \(\mathbf{L}\). Similar to the onion model, each component \((x, y, z)\) is the amount the object extends in the plane, rather than the actual length.
The density \(\mathbf{d}\) of the structure is represented in points per unit volume.
\(\theta\) represents the slant rotation in the \(xz\) plane, \(\theta \in \left(0, \frac{\pi}{2}\right]\).
\(\varphi\) is the slant rotation in the \(yz\) plane. \(\varphi \in \left(0, \frac{\pi}{2}\right]\)
\(\theta = \varphi = \frac{\pi}{2}\) corresponds to a cuboid.
Schematic
The design of a two-shelled parallelepiped.
Iterative nature
The generation follows an iterative process, where we generate each shell sequentially. The combination of all these points forms the final structure.
Shell-by-shell process
For any shell \(i\), we first obtain the maximum distance in the \(x, y, z\) planes, which is not the length. We treat each length as a vector. The inner length vector is \(\mathbf{l}_{\text{inner}} = \sum_{j=0}^{i-1} L_j\), and the outer length vector \(\mathbf{l}_{\text{outer}} = L_i + \mathbf{l}_{i, \text{inner}}\)
For the \(x\) distance, this is simply the dot product \(x_{l, \text{outer}} = l_{x, \text{outer}} l_{z, \text{outer}} \cos \theta\), which is analogous to the \(y\) distance \(y_{l, \text{outer}} = l_{y, \text{outer}} l_{z, \text{outer}} \cos \varphi\).
The \(z\) distance is affected by the slant angles, thus becoming \(z_{l, \text{outer}} = l_{z, \text{outer}} \sin \theta \sin \varphi\)
Finally, we define the inner length’s distance.
We use a rejection method, where we generate the points in the cuboid encapsulating the parallelepiped, then only keep the points inside the parallelepiped’s range.
We generate \(n = d_i V_{\text{cuboid}} = \rho(x_{\text{outer}}y_{\text{outer}}z_{\text{outer}})\) points in the uniform range. Recall that \(d_i\) is the current density. Thus, we define:
We apply the first restrictions to keep the points within the outer radius, which are as follows:
To apply the second restrictions to keep the points outside the inner thickness, we apply similar restrictions, exchanging the outer lengths with the inner lengths. We instead reject any points that fall within the inner range.
The resulting points will form the shell \(\mathbf{U}_{i}\)
Example
Cross sections and 3d images for a parallelepiped with changing slant angles. On the left, there is a cross section of the \(yz\)-plane showcasing \(\varphi\). The center image shows a complete parallelepiped with the same \(\theta\) and \(\varphi\). The right image shows a cross section of the \(xz\) plane showcasing the \(\theta\) angle.
This image demonstrates how parallelepiped objects respond to the slant angle, with cross sections being used. The image on the right is more slanted than the left, despite \(\varphi_\text{left} = \theta_\text{right}\), because of the larger \(x\) length. The density and lengths are constant throughout the example.