Right Triangle Maker: Construct from Angle & Side or Two Sides
Loading the math board and drawing, please wait…
This GeoGebra example demonstrates how to quickly construct a right triangle by entering either one acute angle and one side, or two sides directly. It allows users to flip the triangle orientation and choose which units to display. The core mathematical concepts involve right triangle relationships, the Pythagorean theorem, trigonometric functions (sine, cosine, tangent), and the derivation of missing sides or angles from given data. The construction uses GeoGebra commands such as Corner, Polygon, If, Text, and Textfield, along with numerous objects including ViewOption, ParseTest, ZoomCushion, screen corner coordinates, triangle vertices A, B, C, and side lengths a, b, c. Dynamic text fields capture user input, and conditional logic (If) determines the position of the right angle (bottom-right, bottom-left, top-right, top-left), while zoom ranges (ZoomMinY, ZoomMaxY, etc.) are automatically adjusted to fit the figure. This example is suitable for middle school to high school students learning right triangle properties, trigonometric applications, and dynamic geometry construction. It also serves as an effective classroom demonstration tool for teachers to illustrate the logical connection between given conditions and the resulting triangle.
GeoGebra Commands & Parameters
Corner(2) → ScreenBottomRightCornerCorner(1) → ScreenBottomLeftCornerCorner(5) → ScreenPixelSizePolygon(A, C, B) → Triangle, b, a, cIf(b ≥ a, ((b + ((2 * ZoomCushion) * b)) * ScreenPixelHeightOverPixelWidth), a + ((2 * ZoomCushion) * a)) → ZoomHeightYIf((x(A) < x(C)) ∧ (y(C) < y(B)), true, false) → RightAngleIsBottomRightIf((x(A) > x(C)) ∧ (y(C) < y(B)), true, false) → RightAngleIsBottomLeftIf((y(C) > y(B)) ∧ (x(C) > x(A)), true, false) → RightAngleIsTopRightIf((x(C) < x(A)) ∧ (y(C) > y(B)), true, false) → RightAngleIsTopLeftIf(x(C) > x(A), true, false) → RightAngleIsOnRightIf(y(C) > y(B), true, false) → RightAngleIsOnTopIf(RightAngleIsBottomRight ∨ RightAngleIsTopLeft, Angle[C, A, B], Angle[B, A, C]) → AngleAIf(RightAngleIsBottomRight ∨ RightAngleIsTopLeft, Angle[A, B, C], Angle[C, B, A]) → AngleBIf(RightAngleIsBottomRight ∨ RightAngleIsTopLeft, Angle[B, C, A], Angle[A, C, B]) → AngleCText("a") → FirstInputText("b") → SecondInputIf(FirstInput ≟ "A" ∨ FirstInput ≟ "B", true) → FirstInputIsAnAngleIf(FirstInput ≟ "a" ∧ SecondInput ≟ "b" ∨ FirstInput ≟ "b" ∧ SecondInput ≟ "a", true, false) → abIf(FirstInput ≟ "b" ∧ SecondInput ≟ "c" ∨ FirstInput ≟ "c" ∧ SecondInput ≟ "b", true, false) → bcIf(FirstInput ≟ "a" ∧ SecondInput ≟ "c" ∨ FirstInput ≟ "c" ∧ SecondInput ≟ "a", true, false) → acIf(FirstInput ≟ "A" ∧ SecondInput ≟ "a" ∨ FirstInput ≟ "a" ∧ SecondInput ≟ "A", true, false) → aAIf(FirstInput ≟ "a" ∧ SecondInput ≟ "B" ∨ FirstInput ≟ "B" ∧ SecondInput ≟ "a", true, false) → aBIf(FirstInput ≟ "b" ∧ SecondInput ≟ "A" ∨ FirstInput ≟ "A" ∧ SecondInput ≟ "b", true, false) → bAIf(FirstInput ≟ "b" ∧ SecondInput ≟ "B" ∨ FirstInput ≟ "B" ∧ SecondInput ≟ "b", true, false) → bBIf(FirstInput ≟ "c" ∧ SecondInput ≟ "A" ∨ FirstInput ≟ "A" ∧ SecondInput ≟ "c", true, false) → cAIf(FirstInput ≟ "c" ∧ SecondInput ≟ "B" ∨ FirstInput ≟ "B" ∧ SecondInput ≟ "c", true, false) → cBIf(11 ≤ ViewOption ≤ 12, true, false) → ShowAllValuesTextfield(Unitstext) → UnitstextInputBoxIf(7 ≤ ViewOption ≤ 10, true, false) → ShowSomeVariablesCorner(3) → ScreenTopRightCornerCorner(4) → ScreenTopLeftCornerIf(b ≥ a, b + ((2 * ZoomCushion) * b), ((ZoomMaxY - ZoomMinY) * ScreenPixelWidthOverPixelHeight)) → ZoomWidthXIf(FirstInput ≟ "A" ∨ SecondInput ≟ "A", true, false) → AIsAnInputIf(FirstInput ≟ "c" ∨ SecondInput ≟ "c", true, false) → cIsAnInputIf(FirstInput ≟ "b" ∨ SecondInput ≟ "b", true, false) → bIsAnInputIf(FirstInput ≟ "a" ∨ SecondInput ≟ "a", true, false) → aIsAnInputIf(FirstInput ≟ "B" ∨ SecondInput ≟ "B", true, false) → BIsAnInputTextfield(cVariableTextTemp) → cVariableTextInputBoxTextfield(aInputText) → aInputBoxTextfield(bInputText) → bInputBoxTextfield(cInputText) → cInputBoxIf(2 < ViewOption < 5, true, false) → ShowAllVariablesIf(4 < ViewOption < 9, true, false) → ShowSomeValuesPolygon(ScreenBottomLeftCorner, ScreenBottomRightCorner, ScreenTopRightCorner, ScreenTopLeftCorner) → MainBackground, screenbottomleftcorner, screenbottomrightcorner, screentoprightcorner, screentopleftcornerCorner(2, 1) → ConsoleBLCorner(2, 2) → ConsoleBRCorner(2, 3) → ConsoleTRCorner(2, 4) → ConsoleTLPolygon(ConsoleBL, ConsoleBR, ConsoleTR, ConsoleTL) → ConsoleBackground, consolebl, consolebr, consoletr, consoletlIf(Mod[ViewOption, 2] ≟ 0, true, false) → ShowPointLabelsIf(9 ≤ ViewOption ≤ 10, true, false) → ShowSomeVariablesAndValuesIf(13 ≤ ViewOption ≤ 14, true, false) → ShowAllVariablesAndValues