Algorithm to project a point onto a geodesic polyhedron

algorithmscomputer visiongeometrylinear algebra

I have a geodesic polyhedron/icosphere and would like to map an arbitrary point onto its surface through the origin. I devised the following algorithm:

  1. For the point, find the three closest vertices on the geodesic polyhedron.
  2. Find the intersection of the line drawn through the point and origin, and the plane mapped out from the three vertices.

Is this algorithm correct?

Is it always true that the closest vertices to a point correspond to the projected point's triangle in a geodesic polyhedron? In other words, is my assumption correct that the point's three closest vertices on the polyhedron correspond to the triangle that the point will be projected onto? I don't see how it couldn't be true, but would like confirmation.

Best Answer

I found that my algorithm is generally OK, but it is slow and vulnerable to numerical errors. Here is something better (although I haven't tested it).

https://stackoverflow.com/questions/4821350/find-the-projection-of-a-vector-on-the-icosahedron-or-on-its-unfolded-surface