יסודות משולש
נוסחה, קוד, ויזואליזציה: שלוש דרכים להבין את אותו מושג
קווים מיוחדים — שלושה ייצוגים של אותו רעיון
# Median from A to midpoint of BC m_a = 0.5 * sqrt( 2*b**2 + 2*c**2 - a**2 ) # Altitude from A to BC h_a = 2 * area / a # Angle bisector from A half = radians(angle_A / 2) t_a = 2*b*c*cos(half)/(b+c)
שימו לב: הצבעים עקביים — תיכון בירוק-אמרלד בציור, בנוסחה ובקוד. גובה בכתום בכולם. חוצה זווית בסגול בכולם. המיפוי הזה הוא מנגנון הלמידה — לא כל ייצוג בנפרד, אלא החיבורים ביניהם.
מיפוי בין ייצוגים
כל שורה היא אותו דבר בשלוש צורות שונות:
| Element | Math Formula | Python Method | Visual | Color |
|---|---|---|---|---|
| Side a | |BC| | get_sides()['a'] |
Bottom edge | |
| Side b | |AC| | get_sides()['b'] |
Left edge | |
| Side c | |AB| | get_sides()['c'] |
Right edge | |
| Median | ma = ½√(2b²+2c²−a²) | median_to_a() |
Emerald dashed line | |
| Altitude | ha = 2A/a | altitude_from_a() |
Orange dashed line + right angle | |
| Bisector | ta = 2bc·cos(A/2)/(b+c) | bisector_from_a() |
Violet dashed line | |
| Perp. Bisector | midpoint + normal | circumcenter() |
Rose dashed line | |
| Centroid G | ((xA+xB+xC)/3, ...) | centroid() |
Amber star marker |
מחשבון אינטראקטיבי
הזינו קואורדינטות של שלושת הקודקודים, בחרו אלמנט, וצפו בויזואליזציה ובחישוב שלב-אחרי-שלב:
קווים מיוחדים — מבט מעמיק
תיכון (Median)
קו מקודקוד לאמצע הצלע הנגדית. שלושת התיכונים נפגשים ב-מרכז כובד G, שמחלק כל תיכון ביחס 2:1 מהקודקוד.
גובה (Altitude)
אנך מקודקוד לצלע הנגדית. שלושת הגבהים נפגשים ב-אורתוצנטר H. במשולש קהה-זווית, H נמצא מחוץ למשולש.
חוצה זווית (Angle Bisector)
מחלק את הזווית בקודקוד לשני חלקים שווים. שלושת חוצי הזווית נפגשים ב-מרכז המעגל החסום I. לפי משפט חוצה הזווית: BD/DC = AB/AC.
אנך אמצעי (Perpendicular Bisector)
אנך העובר דרך אמצע הצלע. שלושת האנכים האמצעיים נפגשים ב-מרכז המעגל החוסם O. במשולש קהה-זווית, O נמצא מחוץ למשולש.
ארבע הנקודות המיוחדות
מרכז כובד (Centroid)
חיתוך התיכונים
תמיד בתוך המשולש. ממוצע הקואורדינטות. מחלק כל תיכון ביחס 2:1.
אורתוצנטר (Orthocenter)
חיתוך הגבהים
יכול להיות מחוץ למשולש (כשהמשולש קהה-זווית). בישר-זווית, H נמצא על הקודקוד.
מרכז מעגל חסום (Incenter)
חיתוך חוצי הזווית
תמיד בתוך המשולש. מרחק שווה מכל שלוש הצלעות. r = רדיוס המעגל החסום.
מרכז מעגל חוסם (Circumcenter)
חיתוך האנכים האמצעיים
יכול להיות מחוץ למשולש (קהה-זווית). בישר-זווית, O נמצא על אמצע היתר. מרחק שווה מכל שלושת הקודקודים.
תובנה: בכל משולש (שאינו שווה-צלעות), שלוש נקודות — G, H ו-O — נמצאות על קו ישר אחד, הנקרא קו אוילר. מרכז הכובד G מחלק את HO ביחס 1:2.
קוד Python מלא
הקוד המלא נמצא בקובץ triangle_elements_calculator.py — הוא כולל חישוב מקואורדינטות, ויזואליזציה עם matplotlib, ותפריט אינטראקטיבי עם 12 אפשרויות.
class TriangleElementsCalculator: """Calculate special lines and centers of a triangle.""" def set_from_vertices(self, A, B, C): self.A, self.B, self.C = A, B, C def set_from_sides(self, a, b, c): # Place A at origin, B on x-axis, solve C cos_A = (b**2 + c**2 - a**2) / (2*b*c) sin_A = sqrt(1 - cos_A**2) self.A = (0, 0) self.B = (c, 0) self.C = (b*cos_A, b*sin_A) # ── Special Lines ─────────────────────── def median_to_a(self): length = 0.5 * sqrt(2*b**2 + 2*c**2 - a**2) foot = midpoint(B, C) return {'length': length, 'foot': foot} def altitude_from_a(self): length = 2 * area / a foot = project(A, B, C) # perpendicular projection return {'length': length, 'foot': foot} def bisector_from_a(self): half_A = radians(angle_A / 2) length = (2*b*c*cos(half_A)) / (b+c) ratio = c / (b + c) # bisector theorem return {'length': length, 'foot': foot} # ── Four Centers ──────────────────────── def centroid(self): return ((xA+xB+xC)/3, (yA+yB+yC)/3) def orthocenter(self): # 2 altitude eqns def incenter(self): # weighted average def circumcenter(self): # perp bisector eqns def inradius(self): return area / semi def circumradius(self): return a*b*c/(4*area) # Run: python triangle_elements_calculator.py
זכרו: הקוד הוא תרגום של הנוסחאות, לא מקור ההבנה. מישהו היה צריך לדעת את הנוסחה של חוצה הזווית ואת משפט אוילר כדי לכתוב אותו. הערך של הקוד: פירוק לשלבים ניתנים לעקיבה, אימות עם ערכים אמיתיים, ואיתור שגיאות.