Vector Transformations to Draw Polygons
Loading the math board and drawing, please wait…
This example demonstrates how to draw complex polygons using vector transformations and geometric operations. The core math concepts involved include vectors, translation, reflection, sequences, and coordinate geometry. Key construction elements use GeoGebra commands and objects like Vector, Translate, Mirror, Sequence, Element, CurveCartesian, and Surface. Suitable for high school and above students to explore geometric transformations and polygon constructions.
GeoGebra Commands & Parameters
Vector(O, X) → wVector(O, Z) → uVector(O, Y) → vTranslate(O, Vector[(g * u)]) → A_1Segment(O, A_1) → dMirror(A_1, O) → E_1Segment(E_1, O) → iSequence(CurveCartesian[x(O) + ((R * cos(j°)) * sin(i)^(2)), y(O) + ((R * sin(j°)) * sin(i)^(2)), z(O) + ((R * h) * cos(i)), j, 0, 360], i, tt, t, π / ((2 * n))) → liste1Element(liste1, Length[liste1]) → aaTranslate(aa, Vector[A, B]) → aa'Sequence((x(A) + ((R - 0.15) * cos(i)), y(A) + ((R - 0.15) * sin(i)), z(A)), i, 0, 6.28319, (2 * π / m)) → liste3Sequence((x(B) + ((R - 0.15) * cos(i)), y(B) + ((R - 0.15) * sin(i)), z(B)), i, 0, 6.28319, (2 * π / m)) → liste4Sequence(Segment[Element[liste3, i], Element[liste4, i]], i, 1, Length[liste3]) → liste5Sequence((x(C) + ((R - 0.175) * cos(i + 0.05)), y(C) + ((R - 0.175) * sin(i + 0.05)), z(C)), i, 0, 6.28319, (2 * π / m)) → liste6Sequence((x(C) + ((R - 0.25) * cos(i + 0.086)), y(C) + ((R - 0.25) * sin(i + 0.086)), z(C)), i, 0, 6.28319, (2 * π / m)) → liste9Sequence(Segment[Element[liste4, i], Element[liste6, i]], i, 1, Length[liste4]) → liste8Sequence(Segment[Element[liste4, i + 1], Element[liste9, i]], i, 1, Length[liste4]) → liste10Sequence((x(D) + ((R - 0.25) * cos(i + 0.05)), y(D) + ((R - 0.25) * sin(i + 0.05)), z(D)), i, 0, 6.28319, (2 * π / m)) → liste7Sequence((x(D) + ((R - 0.25) * cos(i + 0.086)), y(D) + ((R - 0.25) * sin(i + 0.086)), z(D)), i, 0, 6.28319, (2 * π / m)) → liste11Sequence(Segment[Element[liste6, i], Element[liste7, i]], i, 1, Length[liste6]) → liste12Sequence(Segment[Element[liste9, i], Element[liste11, i]], i, 1, Length[liste10]) → liste13CurveCartesian(x(O) + (R * sin(i°)), y(O) - (R * cos(i°)), z(O) - (R * sin(i°)), i, 0, 360) → eCurveCartesian(x(D) + ((R - 0.25) * cos(i°)), y(D) - ((R - 0.25) * sin(i°)), z(D), i, 0, 360) → jCurveCartesian(x(O) + (R * sin(i°)^(3)), y(O) - (R * cos(i°)^(3)), z(O) - (R * sin(i°)^(3)), i, 0, 360) → fCurveCartesian(x(O) + (R * sin(i°)), y(O) - (R * cos(i°)), z(O) - ((R * 0) * sin(i°)), i, 0, 360) → h_1CurveCartesian(x(E) + ((R - 0.25) * cos(i°)), y(E) - ((R - 0.25) * sin(i°)), z(E), i, 0, 360) → oCurveCartesian(x(E) + ((R - 0.3) * cos(i°)), y(E) - ((R - 0.3) * sin(i°)), z(E), i, 0, 360) → pCurveCartesian(x(I) + ((R - 3.75) * cos(i°)), y(I) - ((R - 3.75) * sin(i°)), z(I) - 0.2, i, 0, 360) → sSurface(x(O) + (((R - 0.05) * cos(j°)) * sin(i)^(2)), y(O) + (((R - 0.05) * sin(j°)) * sin(i)^(2)), z(O) + (((R - 0.05) * h) * cos(i)), j, 0, 360, i, tt, t) → cSequence((x(H) + ((R - 2.3) * cos(i)), y(H) - ((R - 2.3) * sin(i)), z(H) + 0.05), i, 0, 6.28319, (2 * π / n)) → liste15Sequence(Segment[Element[liste15, i], I], i, 1, Length[liste15]) → liste16Sequence((x(H) + ((R - 2.3) * cos(i + 0.15)), y(H) - ((R - 2.3) * sin(i + 0.15)), z(H) - 0.05), i, 0, 6.28319, (4 * π / n)) → liste17Sequence(Polygon[Element[liste17, i], Element[liste15, i], I], i, 1, Length[liste17]) → liste18CurveCartesian(x(P), y(P) + (0.25 * cos(i°)), z(P) - (0.25 * sin(i°)), i, 0, 180) → qSegment(P, N) → rSegment(N, M) → a_1Segment(M, L) → b_1CurveCartesian(x(I) + ((R - 3.75) * cos(i°)), y(I) - ((R - 3.75) * sin(i°)), z(I) - 0.2, i, 0, 360) → c_1CurveCartesian(x(E) + ((R - 0.3) * cos(i°)), y(O) - ((R - 0.3) * sin(i°)), z(E), i, 0, 360) → ppSequence(Translate[p, Vector[(Vector[E, FF] * i)]], i, 0, 1, 0.01) → liste19Sequence(Translate[p, Vector[(Vector[E, G] * i)]], i, 0, 1, 0.01) → liste14CurveCartesian(x(B) + ((R - 0.175) * cos(i°)), y(B) - ((R - 0.175) * sin(i°)), z(B) + 0.225, i, 0, 360) → lSequence((x(B) + ((R - 0.175) * cos(i°)), y(B) - ((R - 0.175) * sin(i°)), z(B) + 0.35), i, 0, 360, 120 / n) → liste20Segment(Q, P) → d_1Sequence(CurveCartesian[x(O) + ((R * cos(j°)) * sin(i)^(2)), y(O) + ((R * sin(j°)) * sin(i)^(2)), z(O) + ((R * h) * cos(i)), i, tt, t], j, 0, 360, 270 / n) → liste2