Voronoi Diagram on a Sphere with Draggable Sites

Voronoi Diagram on a Sphere with Draggable Sites
Loading the math board and drawing, please wait…
2021-01-14 16:55
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

  1. Sequence(1, M) → Lm
  2. Zip("sphere" + (Text[m]), m, Lm) → Sname
  3. Zip("C" + (Text[m]), m, Lm) → Pname
  4. Zip("M" + (Text[m]), m, Lm) → PMname
  5. Zip(random(), k, Lm) → Cols
  6. Sphere(O, 1) → s
  7. PointIn(s) → C1
  8. PointIn(s) → C2
  9. PointIn(s) → C3
  10. PointIn(s) → C4
  11. PointIn(s) → C5
  12. PointIn(s) → C6
  13. PointIn(s) → C7
  14. PointIn(s) → C8
  15. PointIn(s) → C9
  16. PointIn(s) → C10
  17. PointIn(s) → C11
  18. PointIn(s) → C12
  19. PointIn(s) → C13
  20. PointIn(s) → C14
  21. PointIn(s) → C15
  22. PointIn(s) → C16
  23. PointIn(s) → C17
  24. PointIn(s) → C18
  25. PointIn(s) → C19
  26. PointIn(s) → C20
  27. PointIn(s) → C21
  28. PointIn(s) → C22
  29. PointIn(s) → C23
  30. PointIn(s) → C24
  31. PointIn(s) → C25
  32. PointIn(s) → C26
  33. PointIn(s) → C27
  34. PointIn(s) → C28
  35. PointIn(s) → C29
  36. PointIn(s) → C30
  37. PointIn(s) → C31
  38. PointIn(s) → C32
  39. PointIn(s) → C33
  40. PointIn(s) → C34
  41. PointIn(s) → C35
  42. PointIn(s) → C36
  43. PointIn(s) → C37
  44. PointIn(s) → C38
  45. PointIn(s) → C39
  46. PointIn(s) → C40
  47. PointIn(s) → C41
  48. PointIn(s) → C42
  49. PointIn(s) → C43
  50. PointIn(s) → C44
  51. PointIn(s) → C45
  52. PointIn(s) → C46
  53. PointIn(s) → C47
  54. PointIn(s) → C48
  55. PointIn(s) → C49
  56. PointIn(s) → C50
  57. Midpoint(C1, O) → M1
  58. Midpoint(C2, O) → M2
  59. Midpoint(C3, O) → M3
  60. Midpoint(C4, O) → M4
  61. Midpoint(C5, O) → M5
  62. Midpoint(C6, O) → M6
  63. Midpoint(C7, O) → M7
  64. Midpoint(C8, O) → M8
  65. Midpoint(C9, O) → M9
  66. Midpoint(C10, O) → M10
  67. Midpoint(C11, O) → M11
  68. Midpoint(C12, O) → M12
  69. Midpoint(C13, O) → M13
  70. Midpoint(C14, O) → M14
  71. Midpoint(C15, O) → M15
  72. Midpoint(C16, O) → M16
  73. Midpoint(C17, O) → M17
  74. Midpoint(C18, O) → M18
  75. Midpoint(C19, O) → M19
  76. Midpoint(C20, O) → M20
  77. Midpoint(C21, O) → M21
  78. Midpoint(C22, O) → M22
  79. Midpoint(C23, O) → M23
  80. Midpoint(C24, O) → M24
  81. Midpoint(C25, O) → M25
  82. Midpoint(C26, O) → M26
  83. Midpoint(C27, O) → M27
  84. Midpoint(C28, O) → M28
  85. Midpoint(C29, O) → M29
  86. Midpoint(C30, O) → M30
  87. Midpoint(C31, O) → M31
  88. Midpoint(C32, O) → M32
  89. Midpoint(C33, O) → M33
  90. Midpoint(C34, O) → M34
  91. Midpoint(C35, O) → M35
  92. Midpoint(C36, O) → M36
  93. Midpoint(C37, O) → M37
  94. Midpoint(C38, O) → M38
  95. Midpoint(C39, O) → M39
  96. Midpoint(C40, O) → M40
  97. Midpoint(C41, O) → M41
  98. Midpoint(C42, O) → M42
  99. Midpoint(C43, O) → M43
  100. Midpoint(C44, O) → M44
  101. Midpoint(C45, O) → M45
  102. Midpoint(C46, O) → M46
  103. Midpoint(C47, O) → M47
  104. Midpoint(C48, O) → M48
  105. Midpoint(C49, O) → M49
  106. Midpoint(C50, O) → M50
  107. Sphere(M1, 1 / 2) → sphere1
  108. Sphere(M2, 1 / 2) → sphere2
  109. Sphere(M3, 1 / 2) → sphere3
  110. Sphere(M4, 1 / 2) → sphere4
  111. Sphere(M5, 1 / 2) → sphere5
  112. Sphere(M6, 1 / 2) → sphere6
  113. Sphere(M7, 1 / 2) → sphere7
  114. Sphere(M8, 1 / 2) → sphere8
  115. Sphere(M9, 1 / 2) → sphere9
  116. Sphere(M10, 1 / 2) → sphere10
  117. Sphere(M11, 1 / 2) → sphere11
  118. Sphere(M12, 1 / 2) → sphere12
  119. Sphere(M13, 1 / 2) → sphere13
  120. Sphere(M14, 1 / 2) → sphere14
  121. Sphere(M15, 1 / 2) → sphere15
  122. Sphere(M16, 1 / 2) → sphere16
  123. Sphere(M17, 1 / 2) → sphere17
  124. Sphere(M18, 1 / 2) → sphere18
  125. Sphere(M19, 1 / 2) → sphere19
  126. Sphere(M20, 1 / 2) → sphere20
  127. Sphere(M21, 1 / 2) → sphere21
  128. Sphere(M22, 1 / 2) → sphere22
  129. Sphere(M23, 1 / 2) → sphere23
  130. Sphere(M24, 1 / 2) → sphere24
  131. Sphere(M25, 1 / 2) → sphere25
  132. Sphere(M26, 1 / 2) → sphere26
  133. Sphere(M27, 1 / 2) → sphere27
  134. Sphere(M28, 1 / 2) → sphere28
  135. Sphere(M29, 1 / 2) → sphere29
  136. Sphere(M30, 1 / 2) → sphere30
  137. Sphere(M31, 1 / 2) → sphere31
  138. Sphere(M32, 1 / 2) → sphere32
  139. Sphere(M33, 1 / 2) → sphere33
  140. Sphere(M34, 1 / 2) → sphere34
  141. Sphere(M35, 1 / 2) → sphere35
  142. Sphere(M36, 1 / 2) → sphere36
  143. Sphere(M37, 1 / 2) → sphere37
  144. Sphere(M38, 1 / 2) → sphere38
  145. Sphere(M39, 1 / 2) → sphere39
  146. Sphere(M40, 1 / 2) → sphere40
  147. Sphere(M41, 1 / 2) → sphere41
  148. Sphere(M42, 1 / 2) → sphere42
  149. Sphere(M43, 1 / 2) → sphere43
  150. Sphere(M44, 1 / 2) → sphere44
  151. Sphere(M45, 1 / 2) → sphere45
  152. Sphere(M46, 1 / 2) → sphere46
  153. Sphere(M47, 1 / 2) → sphere47
  154. Sphere(M48, 1 / 2) → sphere48
  155. Sphere(M49, 1 / 2) → sphere49
  156. Sphere(M50, 1 / 2) → sphere50
  157. Zip((sin((π * random())) * cos(((2 * π) * random()))), k, Lm) → Lx
  158. Zip((sin((π * random())) * sin(((2 * π) * random()))), k, Lm) → Ly
  159. Zip(cos((π * random())), k, Lm) → Lz
  160. PointIn(s) → C51
  161. PointIn(s) → C52
  162. PointIn(s) → C53
  163. PointIn(s) → C54
  164. PointIn(s) → C55
  165. PointIn(s) → C56
  166. PointIn(s) → C57
  167. PointIn(s) → C58
  168. PointIn(s) → C59
  169. PointIn(s) → C60
  170. PointIn(s) → C61
  171. PointIn(s) → C62
  172. PointIn(s) → C63
  173. PointIn(s) → C64
  174. PointIn(s) → C65
  175. PointIn(s) → C66
  176. PointIn(s) → C67
  177. PointIn(s) → C68
  178. PointIn(s) → C69
  179. PointIn(s) → C70
  180. PointIn(s) → C71
  181. PointIn(s) → C72
  182. PointIn(s) → C73
  183. PointIn(s) → C74
  184. PointIn(s) → C75
  185. PointIn(s) → C76
  186. PointIn(s) → C77
  187. PointIn(s) → C78
  188. PointIn(s) → C79
  189. PointIn(s) → C80
  190. PointIn(s) → C81
  191. PointIn(s) → C82
  192. PointIn(s) → C83
  193. PointIn(s) → C84
  194. PointIn(s) → C85
  195. PointIn(s) → C86
  196. PointIn(s) → C87
  197. PointIn(s) → C88
  198. PointIn(s) → C89
  199. PointIn(s) → C90
  200. PointIn(s) → C91
  201. PointIn(s) → C92
  202. PointIn(s) → C93
  203. PointIn(s) → C94
  204. PointIn(s) → C95
  205. PointIn(s) → C96
  206. PointIn(s) → C97
  207. PointIn(s) → C98
  208. PointIn(s) → C99
  209. PointIn(s) → C100
  210. Midpoint(C51, O) → M51
  211. Midpoint(C52, O) → M52
  212. Midpoint(C53, O) → M53
  213. Midpoint(C54, O) → M54
  214. Midpoint(C55, O) → M55
  215. Midpoint(C56, O) → M56
  216. Midpoint(C57, O) → M57
  217. Midpoint(C58, O) → M58
  218. Midpoint(C59, O) → M59
  219. Midpoint(C60, O) → M60
  220. Midpoint(C61, O) → M61
  221. Midpoint(C62, O) → M62
  222. Midpoint(C63, O) → M63
  223. Midpoint(C64, O) → M64
  224. Midpoint(C65, O) → M65
  225. Midpoint(C66, O) → M66
  226. Midpoint(C67, O) → M67
  227. Midpoint(C68, O) → M68
  228. Midpoint(C69, O) → M69
  229. Midpoint(C70, O) → M70
  230. Midpoint(C71, O) → M71
  231. Midpoint(C72, O) → M72
  232. Midpoint(C73, O) → M73
  233. Midpoint(C74, O) → M74
  234. Midpoint(C75, O) → M75
  235. Midpoint(C76, O) → M76
  236. Midpoint(C77, O) → M77
  237. Midpoint(C78, O) → M78
  238. Midpoint(C79, O) → M79
  239. Midpoint(C80, O) → M80
  240. Midpoint(C81, O) → M81
  241. Midpoint(C82, O) → M82
  242. Midpoint(C83, O) → M83
  243. Midpoint(C84, O) → M84
  244. Midpoint(C85, O) → M85
  245. Midpoint(C86, O) → M86
  246. Midpoint(C87, O) → M87
  247. Midpoint(C88, O) → M88
  248. Midpoint(C89, O) → M89
  249. Midpoint(C90, O) → M90
  250. Midpoint(C91, O) → M91
  251. Midpoint(C92, O) → M92
  252. Midpoint(C93, O) → M93
  253. Midpoint(C94, O) → M94
  254. Midpoint(C95, O) → M95
  255. Midpoint(C96, O) → M96
  256. Midpoint(C97, O) → M97
  257. Midpoint(C98, O) → M98
  258. Midpoint(C99, O) → M99
  259. Midpoint(C100, O) → M100
  260. Sphere(M51, 1 / 2) → sphere51
  261. Sphere(M52, 1 / 2) → sphere52
  262. Sphere(M53, 1 / 2) → sphere53
  263. Sphere(M54, 1 / 2) → sphere54
  264. Sphere(M55, 1 / 2) → sphere55
  265. Sphere(M56, 1 / 2) → sphere56
  266. Sphere(M57, 1 / 2) → sphere57
  267. Sphere(M58, 1 / 2) → sphere58
  268. Sphere(M59, 1 / 2) → sphere59
  269. Sphere(M60, 1 / 2) → sphere60
  270. Sphere(M61, 1 / 2) → sphere61
  271. Sphere(M62, 1 / 2) → sphere62
  272. Sphere(M63, 1 / 2) → sphere63
  273. Sphere(M64, 1 / 2) → sphere64
  274. Sphere(M65, 1 / 2) → sphere65
  275. Sphere(M66, 1 / 2) → sphere66
  276. Sphere(M67, 1 / 2) → sphere67
  277. Sphere(M68, 1 / 2) → sphere68
  278. Sphere(M69, 1 / 2) → sphere69
  279. Sphere(M70, 1 / 2) → sphere70
  280. Sphere(M71, 1 / 2) → sphere71
  281. Sphere(M72, 1 / 2) → sphere72
  282. Sphere(M73, 1 / 2) → sphere73
  283. Sphere(M74, 1 / 2) → sphere74
  284. Sphere(M75, 1 / 2) → sphere75
  285. Sphere(M76, 1 / 2) → sphere76
  286. Sphere(M77, 1 / 2) → sphere77
  287. Sphere(M78, 1 / 2) → sphere78
  288. Sphere(M79, 1 / 2) → sphere79
  289. Sphere(M80, 1 / 2) → sphere80
  290. Sphere(M81, 1 / 2) → sphere81
  291. Sphere(M82, 1 / 2) → sphere82
  292. Sphere(M83, 1 / 2) → sphere83
  293. Sphere(M84, 1 / 2) → sphere84
  294. Sphere(M85, 1 / 2) → sphere85
  295. Sphere(M86, 1 / 2) → sphere86
  296. Sphere(M87, 1 / 2) → sphere87
  297. Sphere(M88, 1 / 2) → sphere88
  298. Sphere(M89, 1 / 2) → sphere89
  299. Sphere(M90, 1 / 2) → sphere90
  300. Sphere(M91, 1 / 2) → sphere91
  301. Sphere(M92, 1 / 2) → sphere92
  302. Sphere(M93, 1 / 2) → sphere93
  303. Sphere(M94, 1 / 2) → sphere94
  304. Sphere(M95, 1 / 2) → sphere95
  305. Sphere(M96, 1 / 2) → sphere96
  306. Sphere(M97, 1 / 2) → sphere97
  307. Sphere(M98, 1 / 2) → sphere98
  308. Sphere(M99, 1 / 2) → sphere99
  309. Sphere(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.