# Finding the face of an icosahedron in which a vector falls in

## Main Question or Discussion Point

I am thinking about, given an icosahedron (polyhedron of 20 triangular faces) that "represents" a sphere (some may call it a Fuller Projection) and a vector describing a point in the sphere, finding the face of the icosahedron in which the vector falls in.

The vector is unitary, the vectors describing the polyhedron are unitary, so I thought that I could do this by checking the angles between my vector and every vector of the vertices, then checking which three vertex vectors were the nearest, and voila', those are the vertices of my triangular face.

Wrong. In some conditions (near one of the vertices) two of the nearest vertices are not necessarily those of the triangle one would look for.

If any of you knows a way to do this, I would be very grateful!

Last edited:

Related Linear and Abstract Algebra News on Phys.org
Welcome to PF! Never having done such a calculation, I am not sure of my
ground here, but since no one else has yet replied, here is a suggestion
that might work: Let a, b, and c be unit vectors (relative to an origin at
the centre of the sphere) representing the vertices of one of the
triangular faces of the icosahedron. Then the vector V=a+b+c should be
perpendicular to the triangular face and point to the middle of the face.
Now compute one such representative vector V for each of the faces. I should
think that the correct face is the one whose representative vector has the
smallest dot product with your test vector pointing to some point on the
sphere. Points on edges or vertices of the icosahedron would of course
belong to two or three faces respectively.

If this does not work, then perhaps a Google search for "voronoi" might
help you further. I hope this is of some help in getting started.

Now compute one such representative vector V for each of the faces. I should
think that the correct face is the one whose representative vector has the
smallest dot product with your test vector pointing to some point on the
sphere.
Oops. I meant the LARGEST dot product.

You could project the vector onto the plane of each face, and see which plane has the largest projection.

Edit: I think this is the same as what pleknoid is saying.

Last edited:
You could project the vector onto the plane of each face, and see which plane has the largest projection.
Hmmm. Does this really work? Consider a point on the sphere whose vector is perpendicular to one of the faces (i.e. the reference vector for the face, as defined in my post above). The projection of this vector onto its face would be zero, whereas the projection onto the other faces (excluding an opposite face) would not be zero. i.e. the largest projection would select the wrong face.