The Sphere Is Not Flat!
An Applied Computational Geometry Demo
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 that a sphere is not flat (i.e. if you project any part of a sphere onto a two-dimensional plane, then distances must be distorted). - Yes, that includes Google Maps (gasp!).
Part 1: Visual Proof
In this section, we aim to give you a good introduction necessary to understand the proof, in addition to visualizing some examples that we feel will aid greatly in understanding quite a powerful yet simple proof. The examples were sourced from abstract scenarios mentioned in the paper.
The navigation arrows at the bottom should help you get started!
Once you've completed Part I, head over to the fun side in Part II.
Part 2: Try It Yourself!
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 they 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
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 & Resources
- Part II Source Code [download sphere-demo.js] - The JavaScript/Canvas reimplementation of this doodle (free for any use, commercial or not: released to the Public Domain).
- Original 2010 Flash source [html view]
- Applied Computational Geometry Course - Carleton University
- Robinson, P. L. "The Sphere Is Not Flat." The American Mathematical Monthly 113.2 (2006): 171-73. Web.