(Approximated) shadow of a rotated rectangle in 3d space

384 Views Asked by At

My goal is to calculate the shadow of a rotated rectangle in 3d space (with Y being the axis pointing upwards) for use in an equation for falling objects with air resistance (specifically for the projected area). The rotation is given as euler $x, y, z$ angles, and the shadow is the rhomboid that appears when the rotated rectangle is projected flat onto the XZ-axis.

The usecase for this is to calculate the projected surface area that affects air resistance when an object is falling downwards

I considered calculating the positions of the rotated vertices for a rectangle with dimensions $w \times h$ using matrix multiplication with the rotation matrix and constructing a flattened rhomboid, from which on the area can then be calculated. But doing this much trigonometry seems too computationally intensive for real-time usage, which made me wonder if an approximation for this could be made.

It's likely that I'm missing a simple way to approach this problem, since I'm rather new to rotations and matrices in general. Any input is appreciated.

1

There are 1 best solutions below

7
On BEST ANSWER

First of all, construct once and for all your rotation matrix $R$ from Euler angles (I don't embark into that task because there are too many conventions around).

Read off then the cosine of the overall rotation angle, which is just the $y$ coordinate of the transformed of $(0,1,0)$ (the unit normal vector), i.e. it is element $R_{22}$ in your matrix.

The area of the shadow is then simply $A\cdot R_{22}$, where $A$ is the area of the rectangle.

EDIT.

Consider a small rectangle of area $\Delta A$, inside your rectangle, having a side parallel to the ground (i.e. to $xz$ plane). If $\theta$ is the rotation angle of the normal vector, the area of the shadow is then clearly $\Delta A\cdot\cos\theta$. But you can decompose your large rectangle into a sum of rectangles like that, hence...

Finally, note that $\cos\theta$ is the projection of the unit normal vector of the rotated rectangle onto the vertical axis ($y$ axis), that is: $\cos\theta=R_{22}$.

enter image description here