Proof Without Words: Hunger's Law of Cosine Dissection
Loading the math board and drawing, please wait…
This example demonstrates Hunger's Law of Cosine through geometric dissection. It involves trigonometry and vector concepts. Using GeoGebra commands such as Circle, Intersect, Point, Ray, PointIn, Polygon, etc., an intuitive proof process is constructed. Suitable for high school mathematics education, particularly in coordinate geometry and trigonometry.
GeoGebra Commands & Parameters
Circle(Q, R) → c_1Intersect(xAxis, yAxis) → APoint(xAxis) → CPoint(xAxis) → EPoint(xAxis) → FRay(E, F) → fPointIn(c_1) → DPoint(f) → GPolygon(D, A, G) → t1, g, d, aPolygon(D, G, 4) → poly1, h, i, j, k, H, IPolygon(G, A, 4) → poly2, l, m, n, p, J, KPolygon(A, D, 4) → poly3, q, r, s, t, L, MMidpoint(I, G) → NLine(I, D) → eIntersect(e, poly3) → O, PLine(K, a) → f_1Intersect(f_1, m) → UIf(0 < b < 1, Segment[D, Dilate[D, 1 - b, P]], Segment[D, P]) → g_1If(2 < b < 3, Segment[K, Dilate[K, 3 - b, U]], Segment[K, U]) → h_1If(2 < b < 3, Segment[G, Dilate[G, 3 - b, D]], Segment[G, D]) → i_1Segment(K, U) → j_1Polygon(P, L, D) → t2, d_1, p_1, l_1Polygon(P, M, A, D) → q1, p_2, m_1, a_1, d_2Polygon(U, J, K) → t3, k_1, u, j_2Polygon(U, A, G, K) → q2, u_1, a_2, g_2, k_2If(4 < b < 5, Polygon[Translate[P, Vector[D, Dilate[D, 5 - b, H]]], Translate[L, Vector[D, Dilate[D, 5 - b, H]]], Translate[D, Vector[D, Dilate[D, 5 - b, H]]]], Polygon[Translate[P, Vector[D, H]], Translate[L, Vector[D, H]], Translate[D, Vector[D, H]]]) → t4If(5 < b < 6, Polygon[Translate[P, Vector[D, Dilate[D, 6 - b, I]]], Translate[M, Vector[D, Dilate[D, 6 - b, I]]], Translate[A, Vector[D, Dilate[D, 6 - b, I]]], Translate[D, Vector[D, Dilate[D, 6 - b, I]]]], Polygon[Translate[P, Vector[D, I]], Translate[M, Vector[D, I]], Translate[A, Vector[D, I]], Translate[D, Vector[D, I]]]) → q3If(6 < b < 7, Polygon[Translate[U, Vector[K, Dilate[K, 7 - b, H]]], Translate[J, Vector[K, Dilate[K, 7 - b, H]]], Translate[K, Vector[K, Dilate[K, 7 - b, H]]]], Polygon[Translate[U, Vector[K, H]], Translate[J, Vector[K, H]], Translate[K, Vector[K, H]]]) → t5If(7 < b < 8, Polygon[Translate[U, Vector[K, Dilate[K, 8 - b, G]]], Translate[A, Vector[K, Dilate[K, 8 - b, G]]], Translate[G, Vector[K, Dilate[K, 8 - b, G]]], Translate[K, Vector[K, Dilate[K, 8 - b, G]]]], Polygon[Translate[U, Vector[K, G]], Translate[A, Vector[K, G]], Translate[G, Vector[K, G]], Translate[K, Vector[K, G]]]) → q4Translate(M, Vector[D, I]) → M'Translate(P, Vector[D, I]) → P'Translate(A, Vector[D, I]) → A'Translate(G, Vector[K, G]) → G'Translate(G, Vector[D, P']) → G'_1If(9 < b < 10, Polygon[M', A', Dilate[A', 10 - b, H], Dilate[M', 10 - b, G']], Polygon[M', A', H, G']) → q5Translate(U, Vector[K, H]) → U'Circle(M', Segment[U', A']) → cSegment(M', G') → n_1Intersect(c, n_1) → S,Polygon(M', S, A') → t6, a', m', s_1If(11 < b < 12, Rotate[Polygon[Translate[M', Vector[M', Dilate[M', 12 - b, A']]], Translate[S, Vector[M', Dilate[M', 12 - b, A']]], Translate[A', Vector[M', Dilate[M', 12 - b, A']]]], ((b - 11) * π / 2), A'], Rotate[Polygon[Translate[M', Vector[M', A']], Translate[S, Vector[M', A']], Translate[A', Vector[M', A']]], π / 2, A']) → t7Circle(H, Segment[G'_1, G']) → e_1Segment(G', H) → q_1Intersect(e_1, q_1) → T,Polygon(A', T, H) → t8, h_2, a'_1, t_1If(12 < b < 13, Rotate[Polygon[Translate[A', Vector[H, Dilate[H, 13 - b, G']]], Translate[T, Vector[H, Dilate[H, 13 - b, G']]], Translate[H, Vector[H, Dilate[H, 13 - b, G']]]], ((b - 12) * π / 2), G'], Rotate[Polygon[Translate[A', Vector[H, G']], Translate[T, Vector[H, G']], Translate[H, Vector[H, G']]], π / 2, G']) → t9If(10 < b < 11, Segment[A', Dilate[A', 11 - b, S]], Segment[A', S]) → r_1If(10 < b < 11, Segment[A', Dilate[A', 11 - b, T]], Segment[A', T]) → b_1Polygon(S, A', T, G') → q6, s_2, a'_2, t_2, g'If(13 < b < 14, Rotate[Polygon[Translate[S, Vector[T, Dilate[T, 14 - b, P']]], Translate[A', Vector[T, Dilate[T, 14 - b, P']]], Translate[T, Vector[T, Dilate[T, 14 - b, P']]], Translate[G', Vector[T, Dilate[T, 14 - b, P']]]], ((b - 13) * π / 2), P'], Rotate[Polygon[Translate[S, Vector[T, P']], Translate[A', Vector[T, P']], Translate[T, Vector[T, P']], Translate[G', Vector[T, P']]], π / 2, P']) → q7
AI Drawing Prompt Reference
Draw a circle c1 with center at Q and radius R. Then, draw three points C, E, and F on the x-axis, and a ray f from E to F. Pick a point D on c1, and draw triangle t1 with D, A, and G. Next, draw two similar triangles poly1 and poly2, and a triangle poly3 sharing a side with t1. Use midpoint N and line e to construct lines and triangles t2, t3, t4, t5, and so on. With translations and rotations, draw more triangles q1, q2, q3, q4, q5, q6, q7, q8, q9, and line segments r1, b1, forming a series of triangles and segments to demonstrate Hunger's Law of Cosine.
The prompt above was compiled from the original drawing commands and is for reference only.