Stereographic Projection Demonstration by Malin Christersson
Loading the math board and drawing, please wait…
In collections
intersection: surface-surface, curve-curve
intersection: surface-surface, curve-curve
intersection: surface-surface, curve-curve
intersection: surface-surface, curve-curve
This example demonstrates the stereographic projection, a classical geometric transformation that maps points on a sphere to a plane, preserving angles and circles. It visualizes how a sphere's surface is projected onto a plane from a chosen pole, illustrating the conformal nature of the mapping. Core mathematical concepts include 3D-to-2D mapping, orthogonal lines, arcs, translation, and the intersection of spheres with planes. The construction uses GeoGebra commands such as OrthogonalLine, Arc, Point, Translate, Sphere, If, and Segment, with objects including multiple labeled points (A1-E1, A2-E2, etc.) and auxiliary elements to build the projection diagram. Suitable for high school and university students studying solid geometry, coordinate geometry, or complex analysis, particularly for understanding the Riemann sphere and its relation to the complex plane.
GeoGebra Commands & Parameters
OrthogonalLine((0, 0, 0), Plane[D1, D2, (0, 0, 0)]) → F1OrthogonalLine((0, 0, 0), Plane[D2, D7, (0, 0, 0)]) → F2OrthogonalLine((0, 0, 0), Plane[D7, D8, (0, 0, 0)]) → F5Arc(Circle[(0, 0, 0), 1, F1], D1, D2) → G1Arc(Circle[(0, 0, 0), 1, F2], D2, D7) → G2OrthogonalLine((0, 0, 0), Plane[D3, D1, (0, 0, 0)]) → F3Arc(Circle[(0, 0, 0), 1, F3], D3, D1) → G3OrthogonalLine((0, 0, 0), Plane[D7, D3, (0, 0, 0)]) → F4Arc(Circle[(0, 0, 0), 1, F4], D7, D3) → G4Point((0, 0, 0), Vector[UnitVector[Vector[D1] + Vector[D2]]]) → H1Point((0, 0, 0), Vector[UnitVector[Vector[D2] + Vector[D7]]]) → H2Arc(Circle[E1, E2, I1], E2, E1) → J1Arc(Circle[E2, E7, I2], E7, E2) → J2Point((0, 0, 0), Vector[UnitVector[Vector[D3] + Vector[D1]]]) → H3Arc(Circle[E3, E1, I3], E1, E3) → J3Point((0, 0, 0), Vector[UnitVector[Vector[D7] + Vector[D3]]]) → H4Arc(Circle[E7, E3, I4], E3, E7) → J4Arc(Circle[(0, 0, 0), 1, F5], D7, D8) → G5Point((0, 0, 0), Vector[UnitVector[Vector[D8] + Vector[D7]]]) → H5Arc(Circle[E8, E7, I5], E7, E8) → J5OrthogonalLine((0, 0, 0), Plane[D8, D6, (0, 0, 0)]) → F6Arc(Circle[(0, 0, 0), 1, F6], D8, D6) → G6Point((0, 0, 0), Vector[UnitVector[Vector[D6] + Vector[D8]]]) → H6Arc(Circle[E6, E8, I6], E8, E6) → J6OrthogonalLine((0, 0, 0), Plane[D2, D6, (0, 0, 0)]) → F7Arc(Circle[(0, 0, 0), 1, F7], D2, D6) → G7Point((0, 0, 0), Vector[UnitVector[Vector[D2] + Vector[D6]]]) → H7Arc(Circle[E2, E6, I7], E6, E2) → J7OrthogonalLine((0, 0, 0), Plane[D3, D5, (0, 0, 0)]) → F8Arc(Circle[(0, 0, 0), 1, F8], D3, D5) → G8Point((0, 0, 0), Vector[UnitVector[Vector[D3] + Vector[D5]]]) → H8Arc(Circle[E3, E5, I8], E5, E3) → J8OrthogonalLine((0, 0, 0), Plane[D4, D1, (0, 0, 0)]) → F9Arc(Circle[(0, 0, 0), 1, F9], D4, D1) → G9Point((0, 0, 0), Vector[UnitVector[Vector[D4] + Vector[D1]]]) → H9Arc(Circle[E4, E1, I9], E1, E4) → J9OrthogonalLine((0, 0, 0), Plane[D6, D4, (0, 0, 0)]) → F10Arc(Circle[(0, 0, 0), 1, F10], D6, D4) → G10Point((0, 0, 0), Vector[UnitVector[Vector[D6] + Vector[D4]]]) → H10Arc(Circle[E6, E4, I10], E4, E6) → J10OrthogonalLine((0, 0, 0), Plane[D4, D5, (0, 0, 0)]) → F11Arc(Circle[(0, 0, 0), 1, F11], D4, D5) → G11Point((0, 0, 0), Vector[UnitVector[Vector[D4] + Vector[D5]]]) → H11Arc(Circle[E4, E5, I11], E5, E4) → J11OrthogonalLine((0, 0, 0), Plane[D5, D8, (0, 0, 0)]) → F12Arc(Circle[(0, 0, 0), 1, F12], D5, D8) → G12Point((0, 0, 0), Vector[UnitVector[Vector[D5] + Vector[D8]]]) → H12Arc(Circle[E5, E8, I12], E8, E5) → J12Translate(J1, Vector[(0, 0, -1)]) → K1Translate(J2, Vector[(0, 0, -1)]) → K2Translate(J3, Vector[(0, 0, -1)]) → K3Sphere((0, 0, 0), 1) → eIf(¬Defined[J5], Segment[E7, E8]) → K14If(¬Defined[J7], Segment[E2, E6]) → K15If(¬Defined[J8], Segment[E3, E5]) → K16If(¬Defined[J9], Segment[E4, E1]) → K17Segment((0, 0, 1), E1) → L1Segment((0, 0, 1), E2) → L2Segment((0, 0, 1), E3) → L3Segment((0, 0, 1), E4) → L4Segment((0, 0, 1), E5) → L5Segment((0, 0, 1), E6) → L6Segment((0, 0, 1), E7) → L7Segment((0, 0, 1), E8) → L8