直角三角形构造器:已知一角一边或两边快速作图

直角三角形构造器:已知一角一边或两边快速作图
几何画板及绘图内容加载中,请稍等……
2016-02-17 21:50
该范例演示了如何通过输入一个锐角及一条边,或直接输入两条边,快速构造一个直角三角形,并支持翻转三角形方向以及选择显示单位。核心数学概念包括直角三角形的边角关系、勾股定理、三角函数(正弦、余弦、正切)以及角度与边长之间的相互推导。作图要点方面,范例使用了GeoGebra的Corner、Polygon、If、Text、Textfield等命令,并涉及大量对象如ViewOption、ParseTest、ZoomCushion、屏幕角点坐标、三角形顶点A、B、C及边长a、b、c,通过动态文本框输入参数,利用条件判断(If)确定直角位置(右下、左下、右上、左上),并自动调整缩放范围(ZoomMinY、ZoomMaxY等)以适配图形。该范例适合初中至高中阶段学生学习直角三角形性质、三角函数应用以及动态几何作图,也可作为教师课堂演示工具,帮助学生直观理解已知条件与图形构造之间的逻辑关系。

GeoGebra 命令及参数

  1. Corner(2) → ScreenBottomRightCorner
  2. Corner(1) → ScreenBottomLeftCorner
  3. Corner(5) → ScreenPixelSize
  4. Polygon(A, C, B) → Triangle, b, a, c
  5. If(b ≥ a, ((b + ((2 * ZoomCushion) * b)) * ScreenPixelHeightOverPixelWidth), a + ((2 * ZoomCushion) * a)) → ZoomHeightY
  6. If((x(A) < x(C)) ∧ (y(C) < y(B)), true, false) → RightAngleIsBottomRight
  7. If((x(A) > x(C)) ∧ (y(C) < y(B)), true, false) → RightAngleIsBottomLeft
  8. If((y(C) > y(B)) ∧ (x(C) > x(A)), true, false) → RightAngleIsTopRight
  9. If((x(C) < x(A)) ∧ (y(C) > y(B)), true, false) → RightAngleIsTopLeft
  10. If(x(C) > x(A), true, false) → RightAngleIsOnRight
  11. If(y(C) > y(B), true, false) → RightAngleIsOnTop
  12. If(RightAngleIsBottomRight ∨ RightAngleIsTopLeft, Angle[C, A, B], Angle[B, A, C]) → AngleA
  13. If(RightAngleIsBottomRight ∨ RightAngleIsTopLeft, Angle[A, B, C], Angle[C, B, A]) → AngleB
  14. If(RightAngleIsBottomRight ∨ RightAngleIsTopLeft, Angle[B, C, A], Angle[A, C, B]) → AngleC
  15. Text("a") → FirstInput
  16. Text("b") → SecondInput
  17. If(FirstInput ≟ "A" ∨ FirstInput ≟ "B", true) → FirstInputIsAnAngle
  18. If(FirstInput ≟ "a" ∧ SecondInput ≟ "b" ∨ FirstInput ≟ "b" ∧ SecondInput ≟ "a", true, false) → ab
  19. If(FirstInput ≟ "b" ∧ SecondInput ≟ "c" ∨ FirstInput ≟ "c" ∧ SecondInput ≟ "b", true, false) → bc
  20. If(FirstInput ≟ "a" ∧ SecondInput ≟ "c" ∨ FirstInput ≟ "c" ∧ SecondInput ≟ "a", true, false) → ac
  21. If(FirstInput ≟ "A" ∧ SecondInput ≟ "a" ∨ FirstInput ≟ "a" ∧ SecondInput ≟ "A", true, false) → aA
  22. If(FirstInput ≟ "a" ∧ SecondInput ≟ "B" ∨ FirstInput ≟ "B" ∧ SecondInput ≟ "a", true, false) → aB
  23. If(FirstInput ≟ "b" ∧ SecondInput ≟ "A" ∨ FirstInput ≟ "A" ∧ SecondInput ≟ "b", true, false) → bA
  24. If(FirstInput ≟ "b" ∧ SecondInput ≟ "B" ∨ FirstInput ≟ "B" ∧ SecondInput ≟ "b", true, false) → bB
  25. If(FirstInput ≟ "c" ∧ SecondInput ≟ "A" ∨ FirstInput ≟ "A" ∧ SecondInput ≟ "c", true, false) → cA
  26. If(FirstInput ≟ "c" ∧ SecondInput ≟ "B" ∨ FirstInput ≟ "B" ∧ SecondInput ≟ "c", true, false) → cB
  27. If(11 ≤ ViewOption ≤ 12, true, false) → ShowAllValues
  28. Textfield(Unitstext) → UnitstextInputBox
  29. If(7 ≤ ViewOption ≤ 10, true, false) → ShowSomeVariables
  30. Corner(3) → ScreenTopRightCorner
  31. Corner(4) → ScreenTopLeftCorner
  32. If(b ≥ a, b + ((2 * ZoomCushion) * b), ((ZoomMaxY - ZoomMinY) * ScreenPixelWidthOverPixelHeight)) → ZoomWidthX
  33. If(FirstInput ≟ "A" ∨ SecondInput ≟ "A", true, false) → AIsAnInput
  34. If(FirstInput ≟ "c" ∨ SecondInput ≟ "c", true, false) → cIsAnInput
  35. If(FirstInput ≟ "b" ∨ SecondInput ≟ "b", true, false) → bIsAnInput
  36. If(FirstInput ≟ "a" ∨ SecondInput ≟ "a", true, false) → aIsAnInput
  37. If(FirstInput ≟ "B" ∨ SecondInput ≟ "B", true, false) → BIsAnInput
  38. Textfield(cVariableTextTemp) → cVariableTextInputBox
  39. Textfield(aInputText) → aInputBox
  40. Textfield(bInputText) → bInputBox
  41. Textfield(cInputText) → cInputBox
  42. If(2 < ViewOption < 5, true, false) → ShowAllVariables
  43. If(4 < ViewOption < 9, true, false) → ShowSomeValues
  44. Polygon(ScreenBottomLeftCorner, ScreenBottomRightCorner, ScreenTopRightCorner, ScreenTopLeftCorner) → MainBackground, screenbottomleftcorner, screenbottomrightcorner, screentoprightcorner, screentopleftcorner
  45. Corner(2, 1) → ConsoleBL
  46. Corner(2, 2) → ConsoleBR
  47. Corner(2, 3) → ConsoleTR
  48. Corner(2, 4) → ConsoleTL
  49. Polygon(ConsoleBL, ConsoleBR, ConsoleTR, ConsoleTL) → ConsoleBackground, consolebl, consolebr, consoletr, consoletl
  50. If(Mod[ViewOption, 2] ≟ 0, true, false) → ShowPointLabels
  51. If(9 ≤ ViewOption ≤ 10, true, false) → ShowSomeVariablesAndValues
  52. If(13 ≤ ViewOption ≤ 14, true, false) → ShowAllVariablesAndValues