Equation for great circles of a sphere

1.3k Views Asked by At

Background: I have a sphere of some radius R. What I'm trying to do is essentially create a wireframe consisting of great circles that run along the sphere.

I want an equation to represent the great circles so that I can find points that run along those trajectories.

I don't have enough credit to post links, but there a post in the Mathematica stack exchange titled: How to draw a great circle on a sphere?

Which is what I want to achieve.

However, I want to implement it in python and require a further breakdown of the equations that are happening behind the scenes.

I will be plotting these equations in python.

3

There are 3 best solutions below

10
On BEST ANSWER

The equation of equally placed great circles can be written as following in the spherical coordinates$$R=1\\\phi=\dfrac{i}{n}2\pi$$which by translating to Cartesian coordinates gives us $$x^2+y^2+z^2=1\\y=x\cdot\tan \dfrac{i}{n}2\pi$$you can use the following parametric equation for this$$\left(\sin t\cdot\cos \dfrac{i}{n}2\pi\quad,\quad\sin t\cdot\sin \dfrac{i}{n}2\pi\quad,\quad\pm\cos t\right)$$here is an image of what this can generate using MATLAB

enter image description here

0
On

Use spherical trigonometry to help you.

Presumably you are using the usual spherical coordinates, Thus define the origin as the center of the sphere, $P_0 =(\theta_0, \phi_0)$ as the angular coordinates of any fixed point P on the sphere, and $N = (\theta =0,\phi =0)$ as the coordinates of the "north pole" where the positive $z$ axis meets the sphere. We choose $P_0$ as the "pole" with respect to which the great circle would be the "equator", situated $90°$ from the pole $P_0$.

Draw $\triangle PP_0N$ on the sphere, where $P$ is any point on the great circle that is $90°$ from $P_0$. By hypothesis $|PN|=\theta, |P_0N|=\theta_0, |PP_0=90°,|\angle N|=|\phi-\phi_0|.$ Then the Law of Cosines for arc $PP_0$ immediately gives

$\cos\theta\cos\theta_0+\sin\theta\sin\theta_0\cos(\phi-\phi_0)=0$.

Q(uod) E(rat) F(aciendum).

1
On

The top answer over at the Mathematica.SE question is effectively doing the following:

  1. Construct two unit vectors $\hat{u}, \hat{v} \in \mathbb{R}^3$ such that $\hat{u} \cdot \hat{v} = 0$. These two vectors lie in the plane of the desired great circle. If one wants a "random" great circle, one could simply construct two random vectors and then apply the Gram-Schmidt process.

  2. Plot points of the form $$\vec{r}(\theta) = (R \cos \theta) \hat{u} + (R \sin \theta) \hat{v}.$$ As $\theta$ runs from $0$ to $2 \pi$, this traces out a parametric circle of radius $R$ lying in the plane spanned by $\hat{u}$ and $\hat{v}$.