Truss Structure - Cremona Diagram
Loading the math board and drawing, please wait…
This example demonstrates the Cremona diagram method for analyzing truss structures. Key mathematical concepts include vectors and geometry. Using GeoGebra commands such as Segment, Vector, Line, and Intersect, the force equilibrium and structural stability are visually illustrated. Suitable for high school and above students studying structural mechanics and geometric construction.
GeoGebra Commands & Parameters
Segment(Z1, Z5) → aSegment(Z1, Z7) → bSegment(Z7, Z5) → cSegment(Z2, Z8) → dSegment(Z8, Z3) → eSegment(Z3, Z7) → fSegment(Z4, Z6) → gSegment(Z6, Z3) → hSegment(Z1, Z14) → iSegment(Z14, Z10) → jSegment(Z10, Z1) → kSegment(Z12, Z13) → lSegment(Z11, Z9) → mSegment(Z9, Z5) → nnSegment(Z5, Z11) → pVector(Z15, Z8) → vecF1Vector(Z16, Z7) → vecF2Vector(Z17, Z6) → vecF3Segment(Z18, Z20) → qSegment(Z21, Z23) → rVector(Z19, Z22) → uVector(Z22, Z19) → vSegment(Z29, Z27) → sSegment(Z26, Z24) → tVector(Z28, Z25) → wVector(Z25, Z28) → zVector(Z30, Z31) → u_1Vector(Z31, Z32) → v_1Vector(Z32, Z33) → w_1Segment(Z30, Z34) → a_1Segment(Z31, Z34) → b_1Segment(Z32, Z34) → c_1Segment(Z33, Z34) → d_1Line(Z15, Z8) → e_1Line(Z16, Z7) → f_1Line(Z6, Z17) → g_1Line(Z1, a_1) → h_1Intersect(e_1, h_1) → ALine(A, b_1) → i_1Intersect(i_1, f_1) → BLine(B, c_1) → j_1Intersect(g_1, j_1) → CLine(C, d_1) → k_1Intersect(k_1, l_1) → DSegment(A, B) → n_1Segment(B, C) → p_1Segment(C, D) → q_1Segment(D, Z30) → r_1Line(Z34, r_1) → s_1Line(Z33, Z33 + (0, 1)) → t_1Intersect(s_1, t_1) → EVector(Z33, E) → z_1Vector(E, Z30) → u_2Segment(E, Z34) → a_2Segment(Z1, A) → m_1Point(Z5, Vector[(0.1 * (-z_1))]) → FVector(F, Z5) → v_2Distance(Z33, E) → velBDistance(E, Z30) → velAPoint(Z1, Vector[(0.1 * (-u_2))]) → GVector(G, Z30) → w_2Line(E, a) → b_2Line(Z30, b) → c_2Intersect(c_2, b_2) → ISegment(Z30, I) → d_2Segment(I, E) → e_2Segment(I, E) → f_2Line(Z31, b) → g_2Line(I, e) → h_2Intersect(h_2, g_2) → JSegment(I, J) → i_2Segment(J, Z31) → j_2Line(Z32, c) → k_2Line(J, f) → l_2Intersect(k_2, l_2) → KSegment(J, K) → m_2Segment(K, Z32) → n_2Line(K, h) → p_2Line(E, a) → q_2Intersect(p_2, q_2) → MSegment(K, M) → r_2Segment(M, E) → s_2Segment(M, E) → t_2Segment(M, Z33) → a_3If(UnitVector[Vector[I, E]] ≟ UnitVector[Vector[Z1, Z2]], Distance[I, E], (-Distance[I, E])) → velN1If(UnitVector[Vector[Z30, I]] ≟ UnitVector[Vector[Z1, Z8]], Distance[Z30, I], (-Distance[I, Z30])) → velN5Vector(Z30, I) → z_2Vector(I, E) → u_3Vector(E, Z30) → v_3Vector(E, I) → b_3Vector(I, E) → c_3Vector(Z30, Z31) → e_3Vector(Z31, J) → f_3Vector(J, I) → h_3If(UnitVector[Vector[Z31, J]] ≟ UnitVector[Vector[Z8, Z7]], Distance[J, Z31], (-Distance[J, Z31])) → velN6If(UnitVector[Vector[J, I]] ≟ UnitVector[Vector[Z8, Z3]], Distance[J, I], (-Distance[J, I])) → velN10Vector(Z31, Z32) → m_3Vector(Z32, K) → n_3Vector(K, J) → p_3Vector(J, Z31) → q_3Vector(I, Z30) → w_3Vector(E, I) → z_3Vector(I, J) → d_3Vector(J, K) → g_3Vector(K, M) → i_3Vector(M, E) → j_3If(UnitVector[Vector[K, M]] ≟ UnitVector[Vector[Z3, Z6]], Distance[K, M], (-Distance[K, M])) → velN12If(UnitVector[Vector[M, E]] ≟ UnitVector[Vector[Z3, Z4]], Distance[M, E], (-Distance[M, E])) → velN3Vector(E, M) → k_3Vector(M, E) → l_3Vector(Z32, Z33) → r_3Vector(Z33, M) → s_3Vector(M, K) → t_3Vector(K, Z32) → u_4If(UnitVector[Vector[K, J]] ≟ UnitVector[Vector[Z7, Z3]], Distance[K, J], (-Distance[K, J])) → velN11If(UnitVector[Vector[Z32, K]] ≟ UnitVector[Vector[Z7, Z6]], Distance[Z32, K], (-Distance[Z32, K])) → velN7If(UnitVector[Vector[Z33, M]] ≟ UnitVector[Vector[Z6, Z5]], Distance[Z33, M], (-Distance[Z33, M])) → velN8Vector(Z33, E) → v_4Vector(E, M) → w_4Vector(M, Z33) → z_4