An Applied Computational Geometry Demo

By **Omar Hesham** [April 2010] - Last modified March 2016.

In this demo we present a two-part visualization of P.L. Robinson's "The Sphere Is Not Flat" published in the February 2006 issue of the American Mathematical Monthly, in which he presented a simple proof of the fact that the earth is not flat (i.e. if you project any part of the earth onto a two-dimensional plane, then distances must be distorted). -* Yes, that includes Google Maps (gasp!). Google Earth is fine though...*

Once you've completed Part I, head over to the fun side in Part II.

Here's where you can explore these concepts and experience the non-isometric properties yourself. In this simple doodle, you can create points in the Eudliean space, and watch as they get mapped onto a spherical surface. Now you can compare the relavant distances and come up with examples yourself to demonstrate how cannot be preserved.

**Controls:
**Left Mouse Click - Create dot

Click and Drag (in 2D View ) - Drag the dot around

Click and Drag (in Sphere View) - Rotates the camera

MouseWheel (in Sphere view) - Zoom In/Out

Doubleclick - Delete the dot

Ctrl - Show/Hide Euclidean plane grid

Shift - Switch sphere shading mode

**Applet**

Euclidean 2D Plane(Reference Radius = π) |
Sphere(Unit Sphere, Radius = 1) |

**Math behind the scenes**

In essence, the mapping function works to maintain the distance from every new point you create, to the reference orange node (in both views). So the distance between the points themselves are different, hence the mapping is not isometric. For every point *p* in the 2D plane, and its corresponding Sphere point *q:*

distance(referenceDotIn2D, *p*) = distance(referenceDotInSphere, *q*)

given that a distance in 2D space is defined as the length of the straight line connecting two points, and the distance on a Sphere is measured as the length of the shortest great circular arc between them.

*Coordinate mapping:*

Euclidean 2D Plane(Reference Radius = π) |
Sphere(Unit Sphere, Radius = 1) |

r =distance from origin = sqrt(x^2 + z^2) | R = r |

x coordinate | X = sin(R) * (x/r) |

y coordinate (= Zero) | Y = cos(R) |

z coordinate | Z = sin(R) * (z/r) |

**Future Development**

- Implement Curves to demonstrate the euclidean distances vs. euclidean distances (hit
*Space*to see the current 2D version) - Implement length annotations in 3D space on the lines (engine feature recently released link)

**Source Code & Resource**

- Part II Source Code Package (free for any use, commercial or not, except content that is copyrighted by others) [html view]
- Flash - Away3D engine
- Applied Computational Geometry Course - Carleton University
- Robinson, P. L. "The Sphere Is Not Flat." The American Mathematical Monthly 113.2 (2006): 171-73. Web.