חפיפה ודמיון משולשים
נוסחה, קוד, ויזואליזציה: שלוש דרכים להבין את אותו מושג
חפיפת SSS — שלושה ייצוגים של אותו רעיון
# Step 1: sort sides of each triangle s1 = sorted([a1, b1, c1]) s2 = sorted([a2, b2, c2]) # Step 2: compare each pair match = all( abs(s1[i] - s2[i]) < 0.01 for i in range(3) )
שימו לב: הצבעים עקביים — צלעות משולש 1 בטורקיז/תכלת/כחול, צלעות משולש 2 בכתום/ענבר/ורוד. סימני ההתאמה בירוק מחברים את הציור, הנוסחה והקוד.
מיפוי בין ייצוגים
כל שורה היא אותו דבר בשלוש צורות שונות:
| Math | Python Code | Visual (SVG) | Color |
|---|---|---|---|
| a₁ | t1['sides']['a'] |
Triangle 1 — side BC | teal |
| b₁ | t1['sides']['b'] |
Triangle 1 — side AC | cyan |
| c₁ | t1['sides']['c'] |
Triangle 1 — side AB | blue |
| a₂ | t2['sides']['a'] |
Triangle 2 — side B'C' | orange |
| b₂ | t2['sides']['b'] |
Triangle 2 — side A'C' | amber |
| c₂ | t2['sides']['c'] |
Triangle 2 — side A'B' | rose |
| k | scale_factor |
Ratio badge / overlay label | violet |
| ≅ / ∼ | congruent / similar |
Tick marks on matched elements | emerald |
מחשבון אינטראקטיבי
הכניסו את צלעות שני המשולשים וראו את כל הבדיקות בזמן אמת:
קריטריונים לחפיפה
ארבעה תנאים מספיקים להוכיח שמשולשים חופפים — כל אחד כולל ציור, נוסחה וקוד:
אם שלוש הצלעות של משולש אחד שוות לשלוש הצלעות של השני — הם חופפים.
שתי צלעות והזווית שביניהן שוות — חופפים.
שתי זוויות והצלע שביניהן שוות — חופפים.
שתי זוויות וצלע שלא ביניהן שוות — חופפים. (נובע מ-ASA כי הזווית השלישית נקבעת.)
קריטריונים לדמיון
דמיון = אותה צורה, גודל שונה. יחס דמיון k קובע את הקנה מידה.
אם שתי זוויות שוות, השלישית בהכרח שווה (סכום = 180°). המשולשים דומים.
שתי צלעות ביחס שווה והזווית שביניהן שווה — המשולשים דומים.
כל שלוש הצלעות באותו יחס k — דומים.
תכונות יחס הדמיון k
קוד Python מלא
הקוד המלא נמצא בקובץ congruence_similarity_calculator.py — כולל SSS/SAS/ASA, בדיקת דמיון, חישוב יחס שטחים, ותפריט אינטראקטיבי.
class CongruenceSimilarityCalculator: def check_sss(self, t1, t2, tolerance=0.01): """SSS: all three sides equal.""" s1 = sorted([t1['sides']['a'], t1['sides']['b'], t1['sides']['c']]) s2 = sorted([t2['sides']['a'], t2['sides']['b'], t2['sides']['c']]) match = all(abs(s1[i] - s2[i]) < tolerance for i in range(3)) return {'congruent': match, 'sides_1': s1, 'sides_2': s2} def check_similarity(self, t1, t2, tolerance=0.01): """AA/SSS-ratio check, returns scale factor k.""" s1 = sorted([t1['sides']['a'], ...]) s2 = sorted([t2['sides']['a'], ...]) ratios = [s1[i] / s2[i] for i in range(3)] similar = all(abs(ratios[i] - ratios[0]) < tolerance ...) k = ratios[0] # scale factor area_ratio = k ** 2 # area ratio = k squared return {'similar': similar, 'scale_factor': k, 'area_ratio': area_ratio} # Run: python congruence_similarity_calculator.py
זכרו: הקוד הוא תרגום של הקריטריונים, לא מקור ההבנה. מישהו היה צריך לדעת שמשולשים עם שלוש צלעות שוות חופפים כדי לכתוב check_sss. הערך של הקוד: פירוק הבדיקה לשלבים ברורים (סדרו → השוו → הסיקו), ואימות אוטומטי.