Voronoi Diagram on a Sphere with Draggable Sites
Loading the math board and drawing, please wait…
This example demonstrates how to construct a Voronoi diagram directly on a sphere using a set of draggable sites, making the spherical regions of points’ dominance update in real time as you move the sites. It highlights key ideas from spherical geometry and Voronoi tessellations—partitioning a curved surface into cells according to nearest-point (distance-based) criteria—along with geometric intuitions related to symmetry/reflective structure that often appear in spherical constructions. Construction uses GeoGebra commands including Sequence to create the site set, Zip to bundle objects for efficient handling, Sphere to define the sphere, PointIn to generate/select points in/on the relevant geometric domain, and Midpoint to compute auxiliary points needed for boundaries. Objects such as N (number of sites), reference point O, color containers (Cols/colP), and many boundary/region objects (e.g., C1…C29) support the diagram’s automatic updating. Suitable for high-school advanced geometry, undergraduate computational geometry demos, and interactive learning of Voronoi partitions on curved manifolds.
GeoGebra Commands & Parameters
Sequence(1, M) → LmZip("sphere" + (Text[m]), m, Lm) → SnameZip("C" + (Text[m]), m, Lm) → PnameZip("M" + (Text[m]), m, Lm) → PMnameZip(random(), k, Lm) → ColsSphere(O, 1) → sPointIn(s) → C1PointIn(s) → C2PointIn(s) → C3PointIn(s) → C4PointIn(s) → C5PointIn(s) → C6PointIn(s) → C7PointIn(s) → C8PointIn(s) → C9PointIn(s) → C10PointIn(s) → C11PointIn(s) → C12PointIn(s) → C13PointIn(s) → C14PointIn(s) → C15PointIn(s) → C16PointIn(s) → C17PointIn(s) → C18PointIn(s) → C19PointIn(s) → C20PointIn(s) → C21PointIn(s) → C22PointIn(s) → C23PointIn(s) → C24PointIn(s) → C25PointIn(s) → C26PointIn(s) → C27PointIn(s) → C28PointIn(s) → C29PointIn(s) → C30PointIn(s) → C31PointIn(s) → C32PointIn(s) → C33PointIn(s) → C34PointIn(s) → C35PointIn(s) → C36PointIn(s) → C37PointIn(s) → C38PointIn(s) → C39PointIn(s) → C40PointIn(s) → C41PointIn(s) → C42PointIn(s) → C43PointIn(s) → C44PointIn(s) → C45PointIn(s) → C46PointIn(s) → C47PointIn(s) → C48PointIn(s) → C49PointIn(s) → C50Midpoint(C1, O) → M1Midpoint(C2, O) → M2Midpoint(C3, O) → M3Midpoint(C4, O) → M4Midpoint(C5, O) → M5Midpoint(C6, O) → M6Midpoint(C7, O) → M7Midpoint(C8, O) → M8Midpoint(C9, O) → M9Midpoint(C10, O) → M10Midpoint(C11, O) → M11Midpoint(C12, O) → M12Midpoint(C13, O) → M13Midpoint(C14, O) → M14Midpoint(C15, O) → M15Midpoint(C16, O) → M16Midpoint(C17, O) → M17Midpoint(C18, O) → M18Midpoint(C19, O) → M19Midpoint(C20, O) → M20Midpoint(C21, O) → M21Midpoint(C22, O) → M22Midpoint(C23, O) → M23Midpoint(C24, O) → M24Midpoint(C25, O) → M25Midpoint(C26, O) → M26Midpoint(C27, O) → M27Midpoint(C28, O) → M28Midpoint(C29, O) → M29Midpoint(C30, O) → M30Midpoint(C31, O) → M31Midpoint(C32, O) → M32Midpoint(C33, O) → M33Midpoint(C34, O) → M34Midpoint(C35, O) → M35Midpoint(C36, O) → M36Midpoint(C37, O) → M37Midpoint(C38, O) → M38Midpoint(C39, O) → M39Midpoint(C40, O) → M40Midpoint(C41, O) → M41Midpoint(C42, O) → M42Midpoint(C43, O) → M43Midpoint(C44, O) → M44Midpoint(C45, O) → M45Midpoint(C46, O) → M46Midpoint(C47, O) → M47Midpoint(C48, O) → M48Midpoint(C49, O) → M49Midpoint(C50, O) → M50Sphere(M1, 1 / 2) → sphere1Sphere(M2, 1 / 2) → sphere2Sphere(M3, 1 / 2) → sphere3Sphere(M4, 1 / 2) → sphere4Sphere(M5, 1 / 2) → sphere5Sphere(M6, 1 / 2) → sphere6Sphere(M7, 1 / 2) → sphere7Sphere(M8, 1 / 2) → sphere8Sphere(M9, 1 / 2) → sphere9Sphere(M10, 1 / 2) → sphere10Sphere(M11, 1 / 2) → sphere11Sphere(M12, 1 / 2) → sphere12Sphere(M13, 1 / 2) → sphere13Sphere(M14, 1 / 2) → sphere14Sphere(M15, 1 / 2) → sphere15Sphere(M16, 1 / 2) → sphere16Sphere(M17, 1 / 2) → sphere17Sphere(M18, 1 / 2) → sphere18Sphere(M19, 1 / 2) → sphere19Sphere(M20, 1 / 2) → sphere20Sphere(M21, 1 / 2) → sphere21Sphere(M22, 1 / 2) → sphere22Sphere(M23, 1 / 2) → sphere23Sphere(M24, 1 / 2) → sphere24Sphere(M25, 1 / 2) → sphere25Sphere(M26, 1 / 2) → sphere26Sphere(M27, 1 / 2) → sphere27Sphere(M28, 1 / 2) → sphere28Sphere(M29, 1 / 2) → sphere29Sphere(M30, 1 / 2) → sphere30Sphere(M31, 1 / 2) → sphere31Sphere(M32, 1 / 2) → sphere32Sphere(M33, 1 / 2) → sphere33Sphere(M34, 1 / 2) → sphere34Sphere(M35, 1 / 2) → sphere35Sphere(M36, 1 / 2) → sphere36Sphere(M37, 1 / 2) → sphere37Sphere(M38, 1 / 2) → sphere38Sphere(M39, 1 / 2) → sphere39Sphere(M40, 1 / 2) → sphere40Sphere(M41, 1 / 2) → sphere41Sphere(M42, 1 / 2) → sphere42Sphere(M43, 1 / 2) → sphere43Sphere(M44, 1 / 2) → sphere44Sphere(M45, 1 / 2) → sphere45Sphere(M46, 1 / 2) → sphere46Sphere(M47, 1 / 2) → sphere47Sphere(M48, 1 / 2) → sphere48Sphere(M49, 1 / 2) → sphere49Sphere(M50, 1 / 2) → sphere50Zip((sin((π * random())) * cos(((2 * π) * random()))), k, Lm) → LxZip((sin((π * random())) * sin(((2 * π) * random()))), k, Lm) → LyZip(cos((π * random())), k, Lm) → LzPointIn(s) → C51PointIn(s) → C52PointIn(s) → C53PointIn(s) → C54PointIn(s) → C55PointIn(s) → C56PointIn(s) → C57PointIn(s) → C58PointIn(s) → C59PointIn(s) → C60PointIn(s) → C61PointIn(s) → C62PointIn(s) → C63PointIn(s) → C64PointIn(s) → C65PointIn(s) → C66PointIn(s) → C67PointIn(s) → C68PointIn(s) → C69PointIn(s) → C70PointIn(s) → C71PointIn(s) → C72PointIn(s) → C73PointIn(s) → C74PointIn(s) → C75PointIn(s) → C76PointIn(s) → C77PointIn(s) → C78PointIn(s) → C79PointIn(s) → C80PointIn(s) → C81PointIn(s) → C82PointIn(s) → C83PointIn(s) → C84PointIn(s) → C85PointIn(s) → C86PointIn(s) → C87PointIn(s) → C88PointIn(s) → C89PointIn(s) → C90PointIn(s) → C91PointIn(s) → C92PointIn(s) → C93PointIn(s) → C94PointIn(s) → C95PointIn(s) → C96PointIn(s) → C97PointIn(s) → C98PointIn(s) → C99PointIn(s) → C100Midpoint(C51, O) → M51Midpoint(C52, O) → M52Midpoint(C53, O) → M53Midpoint(C54, O) → M54Midpoint(C55, O) → M55Midpoint(C56, O) → M56Midpoint(C57, O) → M57Midpoint(C58, O) → M58Midpoint(C59, O) → M59Midpoint(C60, O) → M60Midpoint(C61, O) → M61Midpoint(C62, O) → M62Midpoint(C63, O) → M63Midpoint(C64, O) → M64Midpoint(C65, O) → M65Midpoint(C66, O) → M66Midpoint(C67, O) → M67Midpoint(C68, O) → M68Midpoint(C69, O) → M69Midpoint(C70, O) → M70Midpoint(C71, O) → M71Midpoint(C72, O) → M72Midpoint(C73, O) → M73Midpoint(C74, O) → M74Midpoint(C75, O) → M75Midpoint(C76, O) → M76Midpoint(C77, O) → M77Midpoint(C78, O) → M78Midpoint(C79, O) → M79Midpoint(C80, O) → M80Midpoint(C81, O) → M81Midpoint(C82, O) → M82Midpoint(C83, O) → M83Midpoint(C84, O) → M84Midpoint(C85, O) → M85Midpoint(C86, O) → M86Midpoint(C87, O) → M87Midpoint(C88, O) → M88Midpoint(C89, O) → M89Midpoint(C90, O) → M90Midpoint(C91, O) → M91Midpoint(C92, O) → M92Midpoint(C93, O) → M93Midpoint(C94, O) → M94Midpoint(C95, O) → M95Midpoint(C96, O) → M96Midpoint(C97, O) → M97Midpoint(C98, O) → M98Midpoint(C99, O) → M99Midpoint(C100, O) → M100Sphere(M51, 1 / 2) → sphere51Sphere(M52, 1 / 2) → sphere52Sphere(M53, 1 / 2) → sphere53Sphere(M54, 1 / 2) → sphere54Sphere(M55, 1 / 2) → sphere55Sphere(M56, 1 / 2) → sphere56Sphere(M57, 1 / 2) → sphere57Sphere(M58, 1 / 2) → sphere58Sphere(M59, 1 / 2) → sphere59Sphere(M60, 1 / 2) → sphere60Sphere(M61, 1 / 2) → sphere61Sphere(M62, 1 / 2) → sphere62Sphere(M63, 1 / 2) → sphere63Sphere(M64, 1 / 2) → sphere64Sphere(M65, 1 / 2) → sphere65Sphere(M66, 1 / 2) → sphere66Sphere(M67, 1 / 2) → sphere67Sphere(M68, 1 / 2) → sphere68Sphere(M69, 1 / 2) → sphere69Sphere(M70, 1 / 2) → sphere70Sphere(M71, 1 / 2) → sphere71Sphere(M72, 1 / 2) → sphere72Sphere(M73, 1 / 2) → sphere73Sphere(M74, 1 / 2) → sphere74Sphere(M75, 1 / 2) → sphere75Sphere(M76, 1 / 2) → sphere76Sphere(M77, 1 / 2) → sphere77Sphere(M78, 1 / 2) → sphere78Sphere(M79, 1 / 2) → sphere79Sphere(M80, 1 / 2) → sphere80Sphere(M81, 1 / 2) → sphere81Sphere(M82, 1 / 2) → sphere82Sphere(M83, 1 / 2) → sphere83Sphere(M84, 1 / 2) → sphere84Sphere(M85, 1 / 2) → sphere85Sphere(M86, 1 / 2) → sphere86Sphere(M87, 1 / 2) → sphere87Sphere(M88, 1 / 2) → sphere88Sphere(M89, 1 / 2) → sphere89Sphere(M90, 1 / 2) → sphere90Sphere(M91, 1 / 2) → sphere91Sphere(M92, 1 / 2) → sphere92Sphere(M93, 1 / 2) → sphere93Sphere(M94, 1 / 2) → sphere94Sphere(M95, 1 / 2) → sphere95Sphere(M96, 1 / 2) → sphere96Sphere(M97, 1 / 2) → sphere97Sphere(M98, 1 / 2) → sphere98Sphere(M99, 1 / 2) → sphere99Sphere(M100, 1 / 2) → sphere100
AI Drawing Prompt Reference
Create a Voronoi diagram on a sphere. Start by placing a reference point as the sphere center and draw a sphere with radius 1. Then define a set of draggable sites on the spherical surface; these sites act as the reference points for distance comparisons. Partition the sphere into multiple spherical regions so that each region consists of points dominated by the nearest site under the spherical geometry distance. Construct the necessary boundary structures based on the sites and the sphere, so the regions update dynamically when the sites are moved. Color the regions to clearly show the cell tessellation on the curved surface.
The prompt above was compiled from the original drawing commands and is for reference only.