Projecting a surface on another surface

3.6k Views Asked by At

I would like to know if there is a method, and what is called the area of mathematics that studies this kind of things, for projecting surfaces on other surfaces.

Example: suppose to have a half-sphere (3d) centered in $(1,1,1)$. I want to find its projection on the plane $z=0$ as seen from the direction defined by the vector $(1,0,1)$ (the line $z=x$ on the $y=0$). How is then given the parametric formula of the surface "projected"? Basically this is how to find the shape of the shadow of an umbrella, and I would like to generalize it.

2

There are 2 best solutions below

8
On

If your surface is represented as $S = S(u,v)$ given a direction $\vec n$

the projection is given as

$$ S_{\vec n}(u,v) = S(u,v)-\langle S(u,v), \vec n \rangle \frac{\vec n}{||\vec n||^2} $$

Here $<\cdot,\cdot>$ represents the scalar product of two vectors.

enter image description here

Here

$$ S(u,v) = \{\cos (v) (\cos (u)+3),\sin (v) (\cos (u)+3),\sin (u)\}\\ \vec n = (1,1,1) $$

NOTE

Regarding the slanted projection with direction $\vec n$ in a plane $\Pi\to \langle p-p_0,\vec a \rangle = 0$

this projection is generated by the intersection of each line associated to the point $S(u^*,v^*)$

$$ L\to p = S(u^*,v^*)+\lambda \vec n $$

with the plane $\Pi$ so the determination of

$$ \lambda^* = -\frac{\langle S_*-p_0,\vec a\rangle}{\langle \vec a, \vec n\rangle} $$

gives the projection image over $\Pi$ hence

$$ S_{\Pi} = S(u,v)-\left(\frac{\langle S(u,v)-p_0,\vec a\rangle}{\langle \vec a, \vec n\rangle}\right)\vec n $$

so choosing a projection plane as

$$ \Pi\to\langle p-p_0,\vec a \rangle = 0 $$

with

$$ p_0 = -(5,5,5)\\ \vec a = (0,0,1)\\ \vec n = (1,1,1) $$

we have

enter image description here

2
On

This is to answer specifically the problem in your comment, about how to find a formula for general (not necessarily orthogonal) projections onto a (hyper)plane. Note: this answer will assume some familiarity with linear algebra.

Let's assume that the plane goes through the origin, as this will make things simpler. If it doesn't, it's not difficult to translate the problem so that the plane does go through the origin. In this case, this is not an issue.

Because the plane goes through the origin, it is a vector subspace. Find a basis for this subspace. Since (hyper)planes are of co-dimension $1$, if you add on any vector not in the plane, it will complete a basis for the entire space. In our case, the list of vectors $((1, 0, 0), (0, 1, 0))$ form a perfectly acceptable basis for the plane.

Next, add on the vector along which you wish to project to the basis to form a basis for the entire space. In our case, our basis for $\mathbb{R}^3$ shall be $$B = ((1, 0, 0), (0, 1, 0), (1, 0, 1))$$ We can define our projection operator $T$ in terms of the basis vectors. $T$ will not change any of the basis vectors in the plane, but it will map the final added vector to $0$. In our case, \begin{align*} T(1, 0, 0) &= (1, 0, 0), \\ T(0, 1, 0) &= (0, 1, 0), \\ T(1, 0, 1) &= (0, 0, 0). \end{align*} We can therefore easily compute the matrix $M(T, B, B)$ of $T$ with respect to the basis $B$. Since we've chosen a basis of eigenvectors, the matrix will be diagonal. In fact, there will be $1$s down the diagonal, except at the bottom-right entry, which will be a $0$. In our case, $$M(T, B, B) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix}.$$ (The above will hold true whenever you work in $3$ dimensions. Changing the dimension will just adjust the number of $1$s.)

Let $S$ be the standard basis. In order to help us find the formula for $T$, we compute the standard matrix $M(T, S, S)$. In order to do this, we use the change-of-basis formula $$M(T, S, S) = M(I, B, S)M(T, B, B)M(I, S, B) = M(I, B, S)M(T, B, B)M(I, B, S)^{-1}.$$ To find $M(I, B, S)$, we put the standard basis vectors as columns. In our case, $$M(I, B, S) = \begin{pmatrix} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}.$$ Compute the inverse, by whatever means you wish. In our case, we get $$M(I, B, S)^{-1} = \begin{pmatrix} 1 & 0 & -1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}.$$ Therefore, $$M(T, S, S) = \begin{pmatrix} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix} \begin{pmatrix} 1 & 0 & -1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} 1 & 0 & -1 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix}$$ To compute what the projection does to a vector (in our case, in $3$ dimensions, $(x, y, z)$), multiply the transpose of this vector to $M(T, S, S)$. We get $$M(T, S, S)\begin{pmatrix}x & y & z\end{pmatrix}^T = \begin{pmatrix} 1 & 0 & -1 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix}\begin{pmatrix}x \\ y \\ z\end{pmatrix} = \begin{pmatrix}x - z & y & 0\end{pmatrix}^T.$$ That is, $T(x, y, z) = (x - z, y, 0)$.

Forgive the complicated steps, but this is how you can do this in full generality.