# Calculate the arc distance between 2 points on a sphere

Hello Everyone, I have an issue here, its related to math but some hints are appretiated. The player has to position 3d models on a sphere which is the globe. For example a building.. and after plotting I have to display the distance between his poltted position and the accurate position. I am getting the player chosen point by a raycast, so on mouse down the model will be plotted and I save have the hit point and the other point is defined by me. I have positioned small sphere's at the accurate position, so the position of these sphere's have to be compared to the hit point(position) to get the distance(arc distance) I think to get the arc distance I need a third point which is the center of the sphere(globe) and hence I can get the radus, since the hit point and the original position is the on surface of the globe. I really appretiate any help!

**Answer** by Owen-Reynolds
·
Jun 22, 2012 at 02:14 PM

Using the center point sounds right. Run a "spoke" from the center to one point; find the angle to the other; you know 360 degrees is a distance of 2xPIxR; find the percent. Untested:

```
Vector3 spokeToActual = playerPos-sphereCenter,
spokeToCorrect = correctPos-sphereCenter;
float angleFromCenter = Vector3.Angle(spokeToActual, spokeToCorrect);
// NOTE: angle inputs don't need normalize. In degrees(!!)
float D = 2*Mathf.PI*radius * (angleFromCenter/360);
```

As a check, print that along with `playerPos-correctPos).magnitude`

. It should only be a little bit bigger, if the player is remotely close.

**Answer** by MV10
·
Jan 02, 2016 at 06:44 AM

Wolfram-Alpha defines great-circle spherical distance as the arcosine of the dot product of the two coordinates:

```
float SphericalDistance(Vector3 position1, Vector3 position2)
{
return Mathf.Acos(Vector3.Dot(position1, position2));
}
```

**Answer** by zaghaghi
·
Jun 22, 2012 at 02:57 PM

Hi, I think that you need to compute great circle distance:

### Your answer

### Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.