## LSL Wiki : ExamplePositionOnASphere

HomePage :: PageIndex :: RecentChanges :: RecentlyCommented :: UserSettings :: You are crawl338.us.archive.org
How to calculate the position on a sphere. Usefull to get something to rotate around a point other than it's center, among other things.

```vector spherePos(vector offset, float radius, float zenith, float azimuth)
{
// zenith is the angle between the positive z-axis and the vector.  Ranges from 0 to PI.  0 will put the object at the top of the sphere, PI will put it at the bottom.  This represents a horizontal slice of the sphere, the height the object will be placed at.
// azimuth is the angle between the positive x-axis and the vector projected onto the xy-plane.  Ranges from 0 to TWO_PI.  0  or TWO_PI will put the object at the positive radius for x and 0 for y.  This is how far around the horiztonal sphere-slice determined from the zenith the object will be placed at.
// see http://en.wikipedia.org/wiki/Spherical_coordinates

float sinzenith = llFabs(llSin(zenith));
float x = sinzenith * llCos(azimuth);
float y = sinzenith * llSin(azimuth);
float z = llCos(zenith);
return offset + (radius * <x, y, z>);
}```