Interpolate between 3D plane and 3D hemisphere

501 Views Asked by At

I have a simple 3D plane whose points (different $x, y$ values, but all $z = 0$) need to be mapped to 3D Cartesian coordinates in order to form a hemisphere. However, I also would like to be able to have a parameter for how much like a plane or how much like a hemisphere the result is, so something like interpolating between a plane and a hemisphere.

I have tried to search up this topic, but I'm a not sure what to call this exactly.

Note that I am not looking for map projection: I'm not looking to map points on the plane to longitude and latitude on the sphere. Rather, what I'm looking for is how to transform point $A (x, y, 0)$ on the plane to the point $A' (x', y', z')$ on a 3D object that is a mix between a plane and a hemisphere (defined by $t$; $t = 0$ is the original flat plane, $t = 1$ is a full hemisphere).

For example, this is my original plane (I highlighted one point on the plane to track its position):
Original Plane
(This should also be the result of interpolation at $t = 0$.)

Expected result at $t = 0.5$: t = 0.5

... and at $t = 1$ - complete hemisphere: Hemisphere

Note where the highlighted point on the frame is now. I would like to find the 3D Cartesian coordinates of this new point (just going to call it $A'$ again), given the original starting point from the plane $A$ and $t$ to determine how much to interpolate.

Any suggestions/pointers on which equations to use to achieve this interpolation effect?


EDIT: Here's an animation for the interpolation effect with $t = [0..1]$:

1

There are 1 best solutions below

3
On BEST ANSWER

You might try something like $$ A_{t}(x, y) = (1 - t)(x, y, 0) + t\frac{(x, y, -1)}{\sqrt{1 + x^{2} + y^{2}}}, $$ which does a "straight-line homotopy" between the planar embedding $(x, y) \mapsto (x, y, 0)$ and the "radial scaling" $$ (x, y, -1) \mapsto \frac{(x, y, -1)}{\|(x, y, -1)\|} = \frac{(x, y, -1)}{\sqrt{1 + x^{2} + y^{2}}}. $$

Generally, if $A_{0}$ and $A_{1}$ are mappings with the same domain, and if $\tau$ is a real-valued function of one variable that satisfies $\tau(0) = 0$ and $\tau(1) = 1$, then $$ A_{t} = \bigl(1 - \tau(t)\bigr)A_{0} + \tau(t) A_{1} $$ interpolates between $A_{0}$ and $A_{1}$ by moving each point of the image along a line segment. (By taking, say, $\tau(t) = \sin^{2} (\pi t)$, you can "smooth" the start and end of the interpolating animation.)

Interpolating between a plane and a hemisphere