In the comments [J. M.][1] linked to a [Demonstration][2] by Borut Levart. Here is code from that, with my own refactoring: eps = 10^-6; (* from spherical to cartesian coordinates *) sp[{ϕ_, θ_}] := {Sin[θ]*Cos[ϕ], Sin[θ]*Sin[ϕ], Cos[θ]} (* part of great circle between two sphere points *) ark[{r1_, r2_}, nt_] := Table[ RotationTransform[t VectorAngle[r1, r2], Cross[r1, r2]][r1], {t, 0, 1, 1/nt}] Manipulate[ If[p1 == p2, p1 = .99 p2]; If[p1 == p3, p1 = .99 p3]; If[p3 == p2, p3 = .98 p2]; Graphics3D[{ {Red, Opacity[.6], Sphere[{0, 0, 0}, .995]}, ark[#, 20] & /@ Subsets[sp /@ {p1, p2, p3}, {2}] // Line, PointSize[.015], Point[sp /@ {p1, p2, p3}] }, Boxed -> False, ImageSize -> {400, 400}, FaceGrids -> {{0, 0, -1}}, FaceGridsStyle -> GrayLevel[.5] ], {{p1, {4.2, .5}, "point one"}, {eps, π (1 - eps)}, {2 π (1 - eps), eps}}, {{p2, {.1, 1.1}, "point two"}, {eps, π (1 - eps)}, {2 π (1 - eps), eps}}, {{p3, {5.1, 1.8}, "point three"}, {eps, π (1 - eps)}, {2 π (1 - eps), eps}}, ControlPlacement -> Left, SaveDefinitions -> True ] ![enter image description here][3] [1]: https://mathematica.stackexchange.com/users/50/j-m [2]: http://demonstrations.wolfram.com/TrianglesOnASphere/ [3]: https://i.sstatic.net/pHRfQ.png