Elliptic Mosaic Pattern

Elliptic Mosaic Pattern
Loading the math board and drawing, please wait…
2025-08-19 01:45
In collections Teselaciones regulares
This example demonstrates the construction of an elliptic mosaic pattern. It involves core mathematical concepts such as circles, trigonometry, and transformations. Using GeoGebra commands like Rotate, Mirror, and Sequence, complex geometric patterns can be created. Suitable for high school mathematics education and learning.

GeoGebra Commands & Parameters

  1. Rotate(A, ((-pi)) / 2, OO) → G1
  2. Mirror(L2A, Line[(0, 0, (-b)), (0, 1, (-b))]) → L2B
  3. Mirror(L3B, Line[(0, 0, (-b)), (0, 1, (-b))]) → L3C
  4. Sequence(Rotate[L3C, (k * pi / 2), OO], k, 0, 3) → lista3B'
  5. Sequence(Rotate[L3B, (k * pi / 2), OO], k, 0, 3) → lista3B
  6. Sequence(Rotate[L3A, (k * pi / 2), OO], k, 0, 3) → lista3A
  7. Sequence(Rotate[L2B, (k * pi / 2), OO], k, 0, 3) → lista2'
  8. Sequence(Rotate[L4, (k * pi / 2), OO], k, 0, 3) → lista4
  9. Sequence(Rotate[L2A, (k * pi / 2), OO], k, 0, 3) → lista2
  10. Sequence(Rotate[L1, (k * pi / 4), OO], k, 0, 7) → lista1
  11. Line(((-b), (-b), (-b)), ((-b), b, (-b))) → r1
  12. Rotate(mos1, ((-pi)) / 2, r1) → mos2
  13. Line(((-b), (-b), (-b)), (b, (-b), (-b))) → r2
  14. Rotate(mos1, pi / 2, r2) → mos3
  15. Sequence(Polygon[mos1(1, k)], k, 1, Length[mos1(1)]) → p1azul
  16. Sequence(Polygon[mos2(1, k)], k, 1, Length[mos2(1)]) → p2azul
  17. Sequence(Polygon[mos3(1, k)], k, 1, Length[mos3(1)]) → p3azul
  18. Translate(p1azul, Vector[(0, 0, (2 * b))]) → p1azul'
  19. Translate(p2azul, Vector[((2 * b), 0, 0)]) → p2azul'
  20. Translate(p3azul, Vector[(0, (2 * b), 0)]) → p3azul'
  21. Sequence(Polygon[mos1(2, k)], k, 1, Length[mos1(2)]) → p1naranjaA
  22. Sequence(Polygon[mos2(2, k)], k, 1, Length[mos2(2)]) → p2naranjaA
  23. Sequence(Polygon[mos3(2, k)], k, 1, Length[mos3(2)]) → p3naranjaA
  24. Translate(p1naranjaA, Vector[(0, 0, (2 * b))]) → p1naranjaA'
  25. Translate(p2naranjaA, Vector[((2 * b), 0, 0)]) → p2naranjaA'
  26. Translate(p3naranjaA, Vector[(0, (2 * b), 0)]) → p3naranjaA'
  27. Sequence(Polygon[mos1(3, k)], k, 1, Length[mos1(3)]) → p1naranjaB
  28. Translate(p1naranjaB, Vector[(0, 0, (2 * b))]) → p1naranjaB'
  29. Sequence(Polygon[mos2(3, k)], k, 1, Length[mos2(3)]) → p2naranjaB
  30. Translate(p2naranjaB, Vector[((2 * b), 0, 0)]) → p2naranjaB'
  31. Sequence(Polygon[mos3(3, k)], k, 1, Length[mos3(3)]) → p3naranjaB
  32. Translate(p3naranjaB, Vector[(0, (2 * b), 0)]) → p3naranjaB'
  33. Sequence(Polygon[mos1(4, k)], k, 1, Length[mos1(4)]) → p1lilaA
  34. Sequence(Polygon[mos1(5, k)], k, 1, Length[mos1(5)]) → p1lilaB
  35. Sequence(Polygon[mos1(6, k)], k, 1, Length[mos1(6)]) → p1lilaC
  36. Sequence(Polygon[mos1(7, k)], k, 1, Length[mos1(7)]) → p1verde
  37. Translate(p1lilaA, Vector[(0, 0, (2 * b))]) → p1lilaA'
  38. Translate(p1lilaB, Vector[(0, 0, (2 * b))]) → p1lilaB'
  39. Translate(p1lilaC, Vector[(0, 0, (2 * b))]) → p1lilaC'
  40. Sequence(Polygon[mos2(4, k)], k, 1, Length[mos2(4)]) → p2lilaA
  41. Sequence(Polygon[mos2(5, k)], k, 1, Length[mos2(5)]) → p2lilaB
  42. Sequence(Polygon[mos2(6, k)], k, 1, Length[mos2(6)]) → p2lilaC
  43. Translate(p2lilaA, Vector[((2 * b), 0, 0)]) → p2lilaA'
  44. Translate(p2lilaB, Vector[((2 * b), 0, 0)]) → p2lilaB'
  45. Translate(p2lilaC, Vector[((2 * b), 0, 0)]) → p2lilaC'
  46. Sequence(Polygon[mos3(4, k)], k, 1, Length[mos3(4)]) → p3lilaA
  47. Sequence(Polygon[mos3(5, k)], k, 1, Length[mos3(5)]) → p3lilaB
  48. Sequence(Polygon[mos3(6, k)], k, 1, Length[mos3(6)]) → p3lilaC
  49. Translate(p3lilaA, Vector[(0, (2 * b), 0)]) → p3lilaA'
  50. Translate(p3lilaB, Vector[(0, (2 * b), 0)]) → p3lilaB'
  51. Translate(p3lilaC, Vector[(0, (2 * b), 0)]) → p3lilaC'
  52. Translate(p1verde, Vector[(0, 0, (2 * b))]) → p1verde'
  53. Sequence(Polygon[mos2(7, k)], k, 1, Length[mos2(7)]) → p2verde
  54. Translate(p2verde, Vector[((2 * b), 0, 0)]) → p2verde'
  55. Sequence(Polygon[mos3(7, k)], k, 1, Length[mos3(7)]) → p3verde
  56. Translate(p3verde, Vector[(0, (2 * b), 0)]) → p3verde'
  57. Sequence(Segment[segExtr0(k, 1), segExtr0(k, 2)], k, 1, Length[segExtr0]) → negro01
  58. Sequence(Rotate[negro01, (k * pi / 2), OO], k, 0, 3) → negro1
  59. Translate(negro1, Vector[(0, 0, (2 * b))]) → negro1'
  60. Rotate(negro1, ((-pi)) / 2, Line[((-b), (-b), (-b)), ((-b), b, (-b))]) → negro2
  61. Translate(negro2, Vector[((2 * b), 0, 0)]) → negro2'
  62. Rotate(negro1, pi / 2, Line[((-b), (-b), (-b)), (b, (-b), (-b))]) → negro3
  63. Translate(negro3, Vector[(0, (2 * b), 0)]) → negro3'
  64. Rotate(cara1, ((-pi)) / 2, Line[((-b), (-b), (-b)), ((-b), b, (-b))]) → cara2
  65. Rotate(cara1, pi / 2, Line[((-b), (-b), (-b)), (b, (-b), (-b))]) → cara3
  66. Translate(cara1, Vector[(0, 0, (2 * b))]) → cara1'
  67. Translate(cara2, Vector[((2 * b), 0, 0)]) → cara2'
  68. Translate(cara3, Vector[(0, (2 * b), 0)]) → cara3'
  69. Sphere(O, r) → a
  70. Join(Join[Sequence[Rotate[segExtr0, (k * pi / 2), OO], k, 0, 3]]) → segExtr1
  71. Vector((0, 0, (2 * b))) → v1
  72. Translate(segExtr1, v1) → segExtr1'
  73. Sequence(Ray[O, segExtr1'(k)], k, 1, Length[segExtr1']) → rayos
  74. Sequence(Intersect[Element[rayos, k], a], k, 1, Length[rayos]) → inter1'
  75. Sequence(CircumcircleArc[inter1'(k), Intersect[Ray[O, (inter1'(k) + inter1'(k + 1)) / 2], a], inter1'(k + 1)], k, 1, Length[inter1'], 2) → arc1'
  76. Translate(Rotate[arc1', pi / 2, Line[((-b), (-b), (-b)), ((-b), b, (-b))]], Vector[(0, 0, (2 * b))]) → arc2
  77. Mirror(arc2, Plane[yAxis, zAxis]) → arc2'
  78. Translate(Rotate[arc1', ((-pi)) / 2, Line[((-b), (-b), (-b)), (b, (-b), (-b))]], Vector[(0, 0, (2 * b))]) → arc3
  79. Mirror(arc3, Plane[xAxis, zAxis]) → arc3'
  80. Mirror(arc1', xOyPlane) → arc1
  81. Sequence(Segment[Vcubo2(k, 1), Vcubo2(k, 2)], k, 1, 12) → segCubo
  82. Sequence(Segment[Vdode2(k, 1), Vdode2(k, 2)], k, 1, 30) → segDode
  83. Sequence(Segment[Vico2(k, 1), Vico2(k, 2)], k, 1, 30) → segIco
  84. Sequence(Segment[Vocta2(k, 1), Vocta2(k, 2)], k, 1, 12) → segOcta
  85. Sequence(Segment[Vtetra2(k, 1), Vtetra2(k, 2)], k, 1, 6) → segTetra
  86. Sequence(CircleArc[(0, 0, 0), Vtetra2(k, 1), Vtetra2(k, 2)], k, 1, 6) → arcosTetra
  87. Sequence(CircleArc[(0, 0, 0), Vocta2(k, 1), Vocta2(k, 2)], k, 1, 12) → arcosOcta
  88. Sequence(CircleArc[(0, 0, 0), Vico2(k, 1), Vico2(k, 2)], k, 1, 30) → arcosIco
  89. Sequence(CircleArc[(0, 0, 0), Vdode2(k, 1), Vdode2(k, 2)], k, 1, 30) → arcosDode
  90. Sequence(CircleArc[(0, 0, 0), Vcubo2(k, 1), Vcubo2(k, 2)], k, 1, 12) → arcosCubo
  91. Sphere(O, r) → a'
  92. Vector(((2 * b), 0, 0)) → v2
  93. Vector((0, (2 * b), 0)) → v3
  94. Translate(mos1, v1) → mos1'
  95. Translate(mos2, v2) → mos2'
  96. Translate(mos3, v3) → mos3'
  97. Length(L) → n
  98. Mirror(inter1', xOyPlane) → inter1
  99. Translate(Rotate[inter1', pi / 2, Line[((-b), (-b), (-b)), ((-b), b, (-b))]], Vector[(0, 0, (2 * b))]) → inter2
  100. Translate(Rotate[inter1', ((-pi)) / 2, Line[((-b), (-b), (-b)), (b, (-b), (-b))]], Vector[(0, 0, (2 * b))]) → inter3
  101. Mirror(inter2, Plane[yAxis, zAxis]) → inter2'
  102. Mirror(inter3, Plane[xAxis, zAxis]) → inter3'
  103. Sphere(O, r) → aa
  104. PolyLine(L1(6), L1(1), L1(2)) → poligonal01A1
  105. PolyLine(L1(5), L1(4), L1(3)) → poligonal01A2
  106. Point(poligonal01A1, pinta) → P01A1
  107. Point(poligonal01A2, pinta) → P01A2
  108. Intersect(Ray[O, P01A1], a) → Q01A1,
  109. Intersect(Ray[O, P01A2], a) → Q01A2,
  110. Intersect(Ray[O, P01AM], a) → Q01AM,
  111. CircumcircleArc(Q01A1, Q01AM, Q01A2) → seg01arc0
  112. PolyLine(Sequence[Point[seg01arc0, k], k, 0, 1, 0.1]) → seg01arc
  113. Sequence(Rotate[seg01arc, (k * pi / 4)], k, 0, 7) → seg01A1
  114. Translate(Rotate[seg01A1, ((-pi)) / 2, r1], v2) → seg01A2
  115. Translate(Rotate[seg01A1, pi / 2, r2], v3) → seg01A3
  116. Rotate(seg01A2, pi) → seg01A2'
  117. Rotate(seg01A3, pi) → seg01A3'
  118. Rotate(seg01A1, pi, xAxis) → seg01A1'
  119. Rotate(segExtr1, ((-pi)) / 2, r1) → segExtr2
  120. Rotate(segExtr1, pi / 2, r2) → segExtr3
  121. Translate(segExtr2, v2) → segExtr2'
  122. Translate(segExtr3, v3) → segExtr3'
  123. PolyLine(L2A(4), L2A(3), L2A(2)) → poligonal02A1
  124. PolyLine(L2A(5), L2A(1)) → poligonal02A2
  125. PolyLine(L2B(4), L2B(3), L2B(2)) → poligonal02B1
  126. PolyLine(L2B(5), L2B(1)) → poligonal02B2
  127. Point(poligonal02A1, pinta) → P02A1
  128. Point(poligonal02A2, pinta) → P02A2
  129. Intersect(Ray[O, P02A1], a) → Q02A1,
  130. Intersect(Ray[O, P02A2], a) → Q02A2,
  131. Intersect(Ray[O, P02AM], a) → Q02AM,
  132. CircumcircleArc(Q02A1, Q02AM, Q02A2) → seg02Aarc0
  133. PolyLine(Sequence[Point[seg02Aarc0, k], k, 0, 1, 0.1]) → seg02Aarc
  134. Point(poligonal02B1, pinta) → P02B1
  135. Point(poligonal02B2, pinta) → P02B2
  136. Intersect(Ray[O, P02B1], a) → Q02B1,
  137. Intersect(Ray[O, P02B2], a) → Q02B2,
  138. Intersect(Ray[O, P02BM], a) → Q02BM,
  139. CircumcircleArc(Q02B1, Q02BM, Q02B2) → seg02Barc0
  140. PolyLine(Sequence[Point[seg02Barc0, k], k, 0, 1, 0.1]) → seg02Barc
  141. Sequence(Rotate[seg02Aarc, (k * pi / 2)], k, 0, 3) → seg02A1
  142. Translate(Rotate[seg02A1, ((-pi)) / 2, r1], v2) → seg02A2
  143. Translate(Rotate[seg02A1, pi / 2, r2], v3) → seg02A3
  144. Rotate(seg02A1, pi, xAxis) → seg02A1'
  145. Rotate(seg02A2, pi) → seg02A2'
  146. Rotate(seg02A3, pi) → seg02A3'
  147. Sequence(Rotate[seg02Barc, (k * pi / 2)], k, 0, 3) → seg02B1
  148. Translate(Rotate[seg02B1, ((-pi)) / 2, r1], v2) → seg02B2
  149. Translate(Rotate[seg02B1, pi / 2, r2], v3) → seg02B3
  150. Rotate(seg02B1, pi, xAxis) → seg02B1'
  151. Rotate(seg02B2, pi) → seg02B2'
  152. Rotate(seg02B3, pi) → seg02B3'
  153. PolyLine(L3A(1), L3A(2), L3A(3), L3A(4)) → poligonal03A1
  154. PolyLine(L3A(1), L3A(6), L3A(5), L3A(4)) → poligonal03A2
  155. Point(poligonal03A1, pinta) → P03A1
  156. Point(poligonal03A2, pinta) → P03A2
  157. Intersect(Ray[O, P03A1], a) → Q03A1,
  158. Intersect(Ray[O, P03A2], a) → Q03A2,
  159. Intersect(Ray[O, P03AM], a) → Q03AM,
  160. CircumcircleArc(Q03A1, Q03AM, Q03A2) → seg03Aarc0
  161. PolyLine(Sequence[Point[seg03Aarc0, k], k, 0, 1, 0.1]) → seg03Aarc
  162. Sequence(Rotate[seg03Aarc, (k * pi / 2)], k, 0, 3) → seg03A1
  163. Translate(Rotate[seg03A1, ((-pi)) / 2, r1], v2) → seg03A2
  164. Translate(Rotate[seg03A1, pi / 2, r2], v3) → seg03A3
  165. Rotate(seg03A1, pi, xAxis) → seg03A1'
  166. Rotate(seg03A2, pi) → seg03A2'
  167. Rotate(seg03A3, pi) → seg03A3'
  168. PolyLine(L3B(1), L3B(4)) → poligonal03B1
  169. PolyLine(L3B(2), L3B(3)) → poligonal03B2
  170. Point(poligonal03B1, pinta) → P03B1
  171. Point(poligonal03B2, pinta) → P03B2
  172. Intersect(Ray[O, P03B1], a) → Q03B1,
  173. Intersect(Ray[O, P03B2], a) → Q03B2,
  174. Intersect(Ray[O, P03BM], a) → Q03BM,
  175. CircumcircleArc(Q03B1, Q03BM, Q03B2) → seg03Barc0
  176. PolyLine(Sequence[Point[seg03Barc0, k], k, 0, 1, 0.1]) → seg03Barc
  177. Sequence(Rotate[seg03Barc, (k * pi / 2)], k, 0, 3) → seg03B1
  178. Translate(Rotate[seg03B1, ((-pi)) / 2, r1], v2) → seg03B2
  179. Translate(Rotate[seg03B1, pi / 2, r2], v3) → seg03B3
  180. Rotate(seg03B1, pi, xAxis) → seg03B1'
  181. Rotate(seg03B2, pi) → seg03B2'
  182. Rotate(seg03B3, pi) → seg03B3'
  183. PolyLine(L3C(1), L3C(4)) → poligonal03C1
  184. PolyLine(L3C(2), L3C(3)) → poligonal03C2
  185. Point(poligonal03C1, pinta) → P03C1
  186. Point(poligonal03C2, pinta) → P03C2
  187. Intersect(Ray[O, P03C1], a) → Q03C1,
  188. Intersect(Ray[O, P03C2], a) → Q03C2,
  189. Intersect(Ray[O, P03CM], a) → Q03CM,
  190. CircumcircleArc(Q03C1, Q03CM, Q03C2) → seg03Carc0
  191. PolyLine(Sequence[Point[seg03Carc0, k], k, 0, 1, 0.1]) → seg03Carc
  192. Sequence(Rotate[seg03Carc, (k * pi / 2)], k, 0, 3) → seg03C1
  193. Translate(Rotate[seg03C1, ((-pi)) / 2, r1], v2) → seg03C2
  194. Translate(Rotate[seg03C1, pi / 2, r2], v3) → seg03C3
  195. Rotate(seg03C1, pi, xAxis) → seg03C1'
  196. Rotate(seg03C2, pi) → seg03C2'
  197. Rotate(seg03C3, pi) → seg03C3'
  198. PolyLine(L4(1), L4(2), L4(3), L4(4)) → poligonal04A1
  199. PolyLine(L4(7), L4(6), L4(5), L4(4)) → poligonal04A2
  200. Point(poligonal04A1, pinta) → P04A1
  201. Point(poligonal04A2, pinta) → P04A2
  202. Intersect(Ray[O, P04A1], a) → Q04A1,
  203. Intersect(Ray[O, P04A2], a) → Q04A2,
  204. Intersect(Ray[O, P04AM], a) → Q04AM,
  205. CircumcircleArc(Q04A1, Q04AM, Q04A2) → seg04arc0
  206. PolyLine(Sequence[Point[seg04arc0, k], k, 0, 1, 0.1]) → seg04arc
  207. Sequence(Rotate[seg04arc, (k * pi / 2)], k, 0, 3) → seg04A1
  208. Translate(Rotate[seg04A1, ((-pi)) / 2, r1], v2) → seg04A2
  209. Translate(Rotate[seg04A1, pi / 2, r2], v3) → seg04A3
  210. Rotate(seg04A1, pi, xAxis) → seg04A1'
  211. Rotate(seg04A2, pi) → seg04A2'
  212. Rotate(seg04A3, pi) → seg04A3'