Projection of a differentiable manifold onto a plane

Etherian
Messages
9
Reaction score
0
For a game I am thinking about making I would need to know how to project points from a differentiable bounded 3-manifold to a Euclidean plane (the computer screen). The manifold would be made from a 3-dimensional space with two balls cut out of it and a hypercylinder glued onto it at the holes created. The result, hopefully, would be similar to the game Portal.

I only have a cursory knowledge of topology, so I do not know how to do such a projection or where to look to find out. An explanation of how or where to look for one would be a great help to me.
 
Physics news on Phys.org
It sounds like you'll be embedding this 3-manifold into R4. If this is the case, it's more a matter of linear algebra than anything else.

You can approximate this manifold as a union 3-simplexes (pyramids with four triangular sides) in R4. Perhaps you'll have 1000 of these simplexes to form a decent approximation. You can represent each simplex as a matrix S where the columns are the vertices of the simplex:

s11 s12 s13 s14
s21 s22 s23 s24
s31 s32 s33 s34
s41 s42 s43 s44

You want to project this onto some 2-dimensional plane in R4. Suppose this plane has normal u = (u1, u2, u3, u4). Then we want each of the vertices (columns of S) to be sent to a point on this plane (which we are assuming passes through the origin).

You can create a "shift" matrix M which, when subtracted from S, gives the projected location of each point. The i-th column of M will be a vector mi = (si DOT u)/(u DOT u) u, where si is the i-th column of S.

Then you apply a rotation to (S - M) so that the plane lies in the x-y plane. Then you just use the first two coordinates of each column vector.
 
Your response definitely helped me, but I believe the 2D plane P would have to be in the 3-manifold M to achieve the effect I am looking for. Like I said, though, I am still learning about this stuff. Also, I was hoping that by gluing and ungluing the two submanifolds I could get away with not having to define M using simplexes which would be expensive in memory and computation.
 
Last edited:
Never mind about the previous post. I have everything I need to know now. Thanks for your help.
 
Back
Top