Isosceles Triangle Tessellation with Rotation and Reflection
Loading the math board and drawing, please wait…
This example demonstrates—via a video-style construction—how to create an isosceles-triangle tessellation by repeatedly placing congruent triangle units to form a regular plane pattern. It highlights key geometry ideas: properties of isosceles triangles and symmetry via transformations, especially reflection (using bisector-based construction) and rotation/translation. The build process is reflected in the GeoGebra commands from the construction summary: LineBisector to obtain symmetry-relevant lines, Vector and OrthogonalVector to define direction and perpendicular vectors, Point/PointIn for candidate points, Intersect to compute intersection points, then Translate and Rotate to replicate the triangle unit across the plane, and Polygon to form and assemble the tessellated tiles (poly1/poly2/poly3) from the constructed points. Suitable for middle/high school geometry, transformation/symmetry lessons, and for classroom visualization or geometry modeling practice.
GeoGebra Commands & Parameters
LineBisector(A, B) → fPoint(f) → CVector(B, C) → uOrthogonalVector(u) → vPointIn(Polygon[B + v, C + v, C - v, B - v]) → DPointIn(Polygon[B + v, C + v, C - v, B - v]) → EPointIn(Polygon[B + v, C + v, C - v, B - v]) → FPointIn(Polygon[B + v, C + v, C - v, B - v]) → GIntersect(Segment[A, B], f) → HLineBisector(H, C) → gVector(H, A) → wTranslate(Mirror[D, g], w) → ITranslate(Mirror[E, g], w) → JTranslate(Mirror[F, g], w) → KTranslate(Mirror[G, g], w) → LPointIn(Circle[H, A]) → MPointIn(Circle[H, A]) → NRotate(M, 180°, H) → M'Rotate(N, 180°, H) → N'Polygon(A, M, C, I, J, K, L, N, N', M', B, D, E, F, G) → poly1, a, g_1, c, i, j, k, l, m, n, n', m', b, d, e, f_1Translate(Polygon[Mirror[A, g], Mirror[M, g], Mirror[N, g], Mirror[N', g], Mirror[M', g], Mirror[B, g], Mirror[D, g], Mirror[E, g], Mirror[F, g], Mirror[G, g], Mirror[C, g], Mirror[I, g], Mirror[J, g], Mirror[K, g], Mirror[L, g]], w) → poly2Translate(Polygon[Mirror[A, g], Mirror[M, g], Mirror[N, g], Mirror[N', g], Mirror[M', g], Mirror[B, g], Mirror[D, g], Mirror[E, g], Mirror[F, g], Mirror[G, g], Mirror[C, g], Mirror[I, g], Mirror[J, g], Mirror[K, g], Mirror[L, g]], Vector[(-w)]) → poly3Translate(A, Vector[(2 * w)]) → A'Translate(M, Vector[(2 * w)]) → M'_1Translate(N, Vector[(2 * w)]) → N'_1Translate(N', Vector[(2 * w)]) → N''Translate(M', Vector[(2 * w)]) → M''Translate(B, Vector[(2 * w)]) → B'Translate(D, Vector[(2 * w)]) → D'Translate(E, Vector[(2 * w)]) → E'Translate(F, Vector[(2 * w)]) → F'Translate(G, Vector[(2 * w)]) → G'Translate(C, Vector[(2 * w)]) → C'Translate(I, Vector[(2 * w)]) → I'Translate(J, Vector[(2 * w)]) → J'Translate(K, Vector[(2 * w)]) → K'Translate(L, Vector[(2 * w)]) → L'Polygon(A', M'_1, C', I', J', K', L', N'_1, N'', M'', B', D', E', F', G') → poly1', a', g', c', i', j', k', l', m'_1, n'_1, n'', m'', b', d', e', f'Translate(A, Vector[(-2 * w)]) → A'_1Translate(M, Vector[(-2 * w)]) → M'_2Translate(N, Vector[(-2 * w)]) → N'_2Translate(N', Vector[(-2 * w)]) → N''_1Translate(M', Vector[(-2 * w)]) → M''_1Translate(B, Vector[(-2 * w)]) → B'_1Translate(D, Vector[(-2 * w)]) → D'_1Translate(E, Vector[(-2 * w)]) → E'_1Translate(F, Vector[(-2 * w)]) → F'_1Translate(G, Vector[(-2 * w)]) → G'_1Translate(C, Vector[(-2 * w)]) → C'_1Translate(I, Vector[(-2 * w)]) → I'_1Translate(J, Vector[(-2 * w)]) → J'_1Translate(K, Vector[(-2 * w)]) → K'_1Translate(L, Vector[(-2 * w)]) → L'_1Polygon(A'_1, M'_2, C'_1, I'_1, J'_1, K'_1, L'_1, N'_2, N''_1, M''_1, B'_1, D'_1, E'_1, F'_1, G'_1) → poly1'_1, a'_1, g'_1, c'_1, i'_1, j'_1, k'_1, l'_1, m'_2, n'_2, n''_1, m''_1, b'_1, d'_1, e'_1, f'_1Rotate(A, 180°, H) → A'_2Rotate(M, 180°, H) → M'_3Rotate(N, 180°, H) → N'_3Rotate(N', 180°, H) → N''_2Rotate(M', 180°, H) → M''_2Rotate(B, 180°, H) → B'_2Rotate(D, 180°, H) → D'_2Rotate(E, 180°, H) → E'_2Rotate(F, 180°, H) → F'_2Rotate(G, 180°, H) → G'_2Rotate(C, 180°, H) → C'_2Rotate(I, 180°, H) → I'_2Rotate(J, 180°, H) → J'_2Rotate(K, 180°, H) → K'_2Rotate(L, 180°, H) → L'_2Polygon(A'_2, M'_3, C'_2, I'_2, J'_2, K'_2, L'_2, N'_3, N''_2, M''_2, B'_2, D'_2, E'_2, F'_2, G'_2) → poly1'_2, a'_2, g'_2, c'_2, i'_2, j'_2, k'_2, l'_2, m'_3, n'_3, n''_2, m''_2, b'_2, d'_2, e'_2, f'_2Translate(g, Vector[C, H]) → g'_3Translate(Polygon[Mirror[A'_2, g'_3], Mirror[M'_3, g'_3], Mirror[N'_3, g'_3], Mirror[N''_2, g'_3], Mirror[M''_2, g'_3], Mirror[B'_2, g'_3], Mirror[D'_2, g'_3], Mirror[E'_2, g'_3], Mirror[F'_2, g'_3], Mirror[G'_2, g'_3], Mirror[C'_2, g'_3], Mirror[I'_2, g'_3], Mirror[J'_2, g'_3], Mirror[K'_2, g'_3], Mirror[L'_2, g'_3]], Vector[(-w)]) → poly4Translate(A'_2, Vector[(2 * w)]) → OTranslate(M'_3, Vector[(2 * w)]) → PTranslate(N'_3, Vector[(2 * w)]) → QTranslate(N''_2, Vector[(2 * w)]) → RTranslate(M''_2, Vector[(2 * w)]) → STranslate(B'_2, Vector[(2 * w)]) → TTranslate(D'_2, Vector[(2 * w)]) → UTranslate(E'_2, Vector[(2 * w)]) → VTranslate(F'_2, Vector[(2 * w)]) → WTranslate(G'_2, Vector[(2 * w)]) → ZTranslate(C'_2, Vector[(2 * w)]) → A_1Translate(I'_2, Vector[(2 * w)]) → B_1Translate(J'_2, Vector[(2 * w)]) → C_1Translate(K'_2, Vector[(2 * w)]) → D_1Translate(L'_2, Vector[(2 * w)]) → E_1Polygon(O, P, A_1, B_1, C_1, D_1, E_1, Q, R, S, T, U, V, W, Z) → poly5, o, z_1, a_1, b_1, c_1, d_1, e_1, p, q, r, s, t, u_1, v_1, w_1Translate(A'_2, Vector[(-2 * w)]) → F_1Translate(M'_3, Vector[(-2 * w)]) → G_1Translate(N'_3, Vector[(-2 * w)]) → H_1Translate(N''_2, Vector[(-2 * w)]) → I_1Translate(M''_2, Vector[(-2 * w)]) → J_1Translate(B'_2, Vector[(-2 * w)]) → K_1Translate(D'_2, Vector[(-2 * w)]) → L_1Translate(E'_2, Vector[(-2 * w)]) → M_1Translate(F'_2, Vector[(-2 * w)]) → N_1Translate(G'_2, Vector[(-2 * w)]) → O_1Translate(C'_2, Vector[(-2 * w)]) → P_1Translate(I'_2, Vector[(-2 * w)]) → Q_1Translate(J'_2, Vector[(-2 * w)]) → R_1Translate(K'_2, Vector[(-2 * w)]) → S_1Translate(L'_2, Vector[(-2 * w)]) → T_1Polygon(F_1, G_1, P_1, Q_1, R_1, S_1, T_1, H_1, I_1, J_1, K_1, L_1, M_1, N_1, O_1) → poly6, h, o_1, q_1, r_1, s_1, t_1, f_2, h_1, i_1, j_1, k_1, l_1, m_1, n_1, p_1Translate(poly4, Vector[(2 * w)]) → poly4'Translate(Mirror[H, g], w) → U_1Rotate(poly2, 180°, U_1) → poly2'Translate(g, Vector[H, C]) → g'_4Translate(Mirror[poly2', g'_4], Vector[(-w)]) → poly7Translate(poly2', Vector[(-2 * w)]) → poly2''
AI Drawing Prompt Reference
Construct an isosceles-triangle tiling on the plane by first defining a base segment with two endpoints and building symmetry-relevant angle bisectors from it (using the intersection of the bisector with the segment). From the bisector and a third reference point, define the direction and a perpendicular direction to locate candidate vertices as points lying on the same quadrilateral-shaped region. Create additional key points by taking intersection of the base segment with the first bisector, then place two points on the circle centered at that intersection with radius equal to the distance to an endpoint. Rotate those two circle points by 180° around the intersection to obtain corresponding symmetric points. Assemble a polygonal tile from the original endpoints, the rotated circle points, and the reflected counterparts across the constructed bisector lines. Finally, translate the assembled tile repeatedly along the direction vector (including shifts in the opposite sense) to form a larger repeating isosceles-triangle tessellation with both reflection and rotation symmetry.
The prompt above was compiled from the original drawing commands and is for reference only.