comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » equally spaced points on a hypersphere?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: equally spaced points on a hypersphere? [message #41539 is a reply to message #41449] Fri, 29 October 2004 09:52 Go to previous messageGo to previous message
James Kuyper is currently offline  James Kuyper
Messages: 425
Registered: March 2000
Senior Member
Craig Markwardt wrote:
> Matt Feinstein <nospam@here.com> writes:
>
>> On 29 Oct 2004 07:51:58 -0700, robert.dimeo@nist.gov (Rob Dimeo)
>> wrote:
>>
>>
>>> Hi,
>>>
>>> I would like to create (n+1) equidistant points on an n-dimensional
>>> sphere. The initial information provided is the center of the sphere,
>>> the radius, and *any* point on the sphere. From that you need to find
>>> the coordinates for the remaining n points. As a simple example,
>>> three equidistant points on a 2-dimensional sphere (a circle), can be
>>> located 120 degrees apart. Any hints on how to do this in general for
>>> n-dimensions?

For n=1, the solution is two points at +/-1.

For n>1, take the solution for n-1 dimensions, centered at the origin.
Add one dimension, and give all those points a value of 0 in the new
dimension. Add a point with a value of 'x' for the new dimension, with
all it's other coordinates set to 0. Calculate the distance of the new
point from any of the old points, as a function of 'x'. Solve for the
value of 'x' that puts the new point at the same distance from the old
point, as the old point was from all of the other points. By symmetry,
the new point will also be that same distance from all of the other old
points. Find the center of the new set of points. Shift all the points
by the amount needed to center them on the desired location. Shift all
of the points outward from the center by the same factor, to get a
hypersphere of the desired radius.

Example, for n=2:

Start with two points a <-1,0> and <+1,0>.
Add a third point at <0,x>. The distance from first point is
sqrt(1+x^2). The distance between first two points is 2, so x = sqrt(3).

The center of <-1,0>, <1,0> and <0,sqrt(3)> is at <0, 1/sqrt(3)>.

Shifting all the points to center at 0, we get <-1,-1/sqrt(3)>,
<1,-sqrt(3)/3> and <0,2/sqrt(3)>. The new circle has a radius of 2/sqrt(3).

Multiply by sqrt(3)/2, to get a circle of radius one, leaving us with
<-sqrt(3)/2, -1/2>, <sqrt(3)/2, -1/2>, <0,1>.

>> Unfortunately, when you go to dimension greater than two, there are
>> constraints on the number of 'equidistant' points you can have on a
>> sphere. For example, in 3-D, there are (only) five regular polyhedra,
>> so n can only have the values 4, 6, 8, 12, and 20 for a tetrahedron,
>> octahedron, cube, icosahedron, and dodecahedron.
>
>
> So is there any requirement that the tesselation produce a regular
> polyhedron?

Yes. If all of the points are to be equidistant from each other, then
the object they trace out is necessarily a regular polyhedron. I fact,
there is only one polyhedron in three dimensions where all of the
vertices are equidistant from each other, and that's the tetrahedron. In
general, the maximum number is 1 more than the number of dimension of
the sphere.

All the edges of regular polyhedra are the same length, but that's not
the same thing.

> Clearly it is possible to place *any* number of equidistant points on
> a sphere via an iterative approach. As discussed on line, start
> with random placement of points, allow the points to repel each other,
> iterate until you reach the lowest energy configure.

That can't produce an equidistant set of points for any n more than 1
higher than the number of dimensions. In three dimensions it also can't
produce a regular polyhedron for any n other than the ones that were
listed above. Try it with 5 points on the surface of a three-dimensional
sphere. The precise configuration you'll end up with depends upon the
force law you use for the repulsion, but it won't be a regular
polyhedron, and it certainly won't be equidistant.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Complex arguments in Bessel functions
Next Topic: Re: idlhelp copy and paste problem

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 03:53:19 PDT 2025

Total time taken to generate the page: 1.60336 seconds