เส้นกึ่งกลางสามเหลี่ยม
เส้นกึ่งกลางสามเหลี่ยม Midsegment Midline จุดกึ่งกลาง ขนาน ครึ่งหนึ่ง Vector พิกัด พื้นที่ เส้นรอบรูป พิสูจน์
| ทฤษฎีบท | สูตร | ตัวอย่าง | หมายเหตุ |
|---|---|---|---|
| ความยาว | MN = BC/2 | BC=10 → MN=5 | เส้นกึ่งกลางยาวครึ่งหนึ่งของด้านตรงข้าม |
| ขนาน | MN // BC | ความชัน MN = ความชัน BC | เส้นกึ่งกลางขนานกับด้านตรงข้าม |
| พื้นที่ | A_small = A_big / 4 | 48/4 = 12 cm² | เส้นกึ่งกลาง 3 เส้นแบ่งเป็น 4 สามเหลี่ยมเท่ากัน |
| เส้นรอบรูป | P_small = P_big / 2 | 24/2 = 12 cm | สามเหลี่ยมเล็กคล้ายสามเหลี่ยมใหญ่ 1:2 |
| จุดกึ่งกลาง | M = ((x1+x2)/2, (y1+y2)/2) | A(2,4) B(6,8) → M(4,6) | ใช้ Midpoint Formula |
คำนวณด้วย Python
# === Midsegment Calculator ===
import math
from dataclasses import dataclass
@dataclass
class Point:
x: float
y: float
name: str
@dataclass
class Triangle:
A: Point
B: Point
C: Point
def midpoint(p1: Point, p2: Point, name: str) -> Point:
return Point((p1.x + p2.x) / 2, (p1.y + p2.y) / 2, name)
def distance(p1: Point, p2: Point) -> float:
return math.sqrt((p2.x - p1.x)**2 + (p2.y - p1.y)**2)
def slope(p1: Point, p2: Point) -> float:
if p2.x == p1.x:
return float('inf')
return (p2.y - p1.y) / (p2.x - p1.x)
def triangle_area(A: Point, B: Point, C: Point) -> float:
return abs((A.x*(B.y-C.y) + B.x*(C.y-A.y) + C.x*(A.y-B.y)) / 2)
# Example: Triangle ABC
A = Point(0, 0, "A")
B = Point(8, 0, "B")
C = Point(4, 6, "C")
tri = Triangle(A, B, C)
# Midpoints
M = midpoint(A, B, "M") # Midpoint of AB
N = midpoint(A, C, "N") # Midpoint of AC
P = midpoint(B, C, "P") # Midpoint of BC
print(f"Triangle: {A.name}({A.x},{A.y}) {B.name}({B.x},{B.y}) {C.name}({C.x},{C.y})")
print(f"Midpoints: {M.name}({M.x},{M.y}) {N.name}({N.x},{N.y}) {P.name}({P.x},{P.y})")
# Midsegments
MN = distance(M, N)
BC = distance(B, C)
print(f"\nMidsegment MN = {MN:.4f}")
print(f"Side BC = {BC:.4f}")
print(f"MN = BC/2? {abs(MN - BC/2) < 0.0001}") # True
# Parallel check
slope_MN = slope(M, N)
slope_BC = slope(B, C)
print(f"\nSlope MN = {slope_MN:.4f}")
print(f"Slope BC = {slope_BC:.4f}")
print(f"MN // BC? {abs(slope_MN - slope_BC) < 0.0001}") # True
# Areas
area_big = triangle_area(A, B, C)
area_small = triangle_area(M, N, P)
print(f"\nArea ABC = {area_big:.2f}")
print(f"Area MNP = {area_small:.2f}")
print(f"Ratio = {area_big/area_small:.1f}") # 4.0
แบบฝึกหัด
# === Practice Problems ===
@dataclass
class Problem:
number: int
question: str
given: str
answer: str
solution: str
problems = [
Problem(1,
"สามเหลี่ยม ABC มี BC = 16 cm จงหาความยาวเส้นกึ่งกลาง MN ที่ขนาน BC",
"BC = 16 cm, M จุดกึ่งกลาง AB, N จุดกึ่งกลาง AC",
"MN = 8 cm",
"MN = BC/2 = 16/2 = 8 cm"),
Problem(2,
"เส้นกึ่งกลาง MN = 9 cm จงหาความยาวด้าน BC",
"MN = 9 cm, MN // BC",
"BC = 18 cm",
"BC = 2 * MN = 2 * 9 = 18 cm"),
Problem(3,
"สามเหลี่ยม ABC พื้นที่ 100 cm² จงหาพื้นที่สามเหลี่ยมที่เกิดจากเส้นกึ่งกลาง 3 เส้น",
"Area ABC = 100 cm²",
"Area MNP = 25 cm²",
"Area MNP = Area ABC / 4 = 100/4 = 25 cm²"),
Problem(4,
"สามเหลี่ยม ABC มี A(0,0) B(10,0) C(6,8) จงหาความยาวเส้นกึ่งกลางทั้ง 3 เส้น",
"A(0,0) B(10,0) C(6,8)",
"MN=5.39 MP=4.47 NP=5.0",
"M(5,0) N(3,4) P(8,4) → คำนวณด้วย Distance Formula"),
Problem(5,
"สามเหลี่ยม ABC มีเส้นรอบรูป 36 cm จงหาเส้นรอบรูปสามเหลี่ยม MNP",
"Perimeter ABC = 36 cm",
"Perimeter MNP = 18 cm",
"P_small = P_big / 2 = 36/2 = 18 cm"),
]
print("=== Practice Problems ===")
for p in problems:
print(f"\n Problem {p.number}: {p.question}")
print(f" Given: {p.given}")
print(f" Answer: {p.answer}")
print(f" Solution: {p.solution}")
การพิสูจน์
# === Vector Proof ===
@dataclass
class ProofStep:
step: int
statement: str
reason: str
proof_vector = [
ProofStep(1,
"ให้ A เป็นจุดกำเนิด AB = b, AC = c",
"กำหนดตัวแปร"),
ProofStep(2,
"M = จุดกึ่งกลาง AB ดังนั้น AM = b/2",
"นิยามจุดกึ่งกลาง"),
ProofStep(3,
"N = จุดกึ่งกลาง AC ดังนั้น AN = c/2",
"นิยามจุดกึ่งกลาง"),
ProofStep(4,
"MN = AN - AM = c/2 - b/2 = (c - b)/2",
"การลบ Vector"),
ProofStep(5,
"BC = AC - AB = c - b",
"การลบ Vector"),
ProofStep(6,
"MN = (c - b)/2 = BC/2",
"จาก Step 4 และ 5"),
ProofStep(7,
"MN = (1/2) * BC ดังนั้น MN // BC และ |MN| = |BC|/2",
"Scalar Multiple → ขนานและยาวครึ่งหนึ่ง QED"),
]
print("=== Vector Proof: Midsegment Theorem ===")
for s in proof_vector:
print(f" Step {s.step}: {s.statement}")
print(f" Reason: {s.reason}")
เคล็ดลับ
- จำ: เส้นกึ่งกลาง = ครึ่งหนึ่งของด้านตรงข้าม ขนานเสมอ
- พื้นที่: เส้นกึ่งกลาง 3 เส้นแบ่งเป็น 4 ส่วนเท่ากัน
- พิกัด: ใช้ Midpoint Formula หาจุดกึ่งกลาง
- พิสูจน์: ใช้ Vector ง่ายที่สุด 7 ขั้นตอน
- ตรวจ: ตรวจคำตอบด้วยความชัน (Slope) ว่าขนานจริง
การนำความรู้ไปประยุกต์ใช้งานจริง
แหล่งเรียนรู้ที่แนะนำ ได้แก่ Official Documentation ที่อัพเดทล่าสุดเสมอ Online Course จาก Coursera Udemy edX ช่อง YouTube คุณภาพทั้งไทยและอังกฤษ และ Community อย่าง Discord Reddit Stack Overflow ที่ช่วยแลกเปลี่ยนประสบการณ์กับนักพัฒนาทั่วโลก
เส้นกึ่งกลางสามเหลี่ยมคืออะไร
Midsegment เชื่อมจุดกึ่งกลาง 2 ด้าน ขนานด้านตรงข้าม ยาวครึ่งหนึ่ง 3 เส้นแบ่ง 4 สามเหลี่ยมเท่ากัน พื้นที่ 1/4 เส้นรอบรูป 1/2
สูตรคำนวณอะไรบ้าง
MN=BC/2 Midpoint Formula (x1+x2)/2 Distance sqrt Slope (y2-y1)/(x2-x1) Area 1/4 Perimeter 1/2 Vector Proof
ตัวอย่างโจทย์มีอะไร
หาเส้นกึ่งกลาง BC=16 MN=8 หาด้าน MN=9 BC=18 พื้นที่ 100/4=25 เส้นรอบรูป 36/2=18 พิกัด Midpoint Distance
พิสูจน์อย่างไร
Vector Proof AB=b AC=c MN=(c-b)/2 BC=c-b MN=BC/2 ขนาน Scalar Multiple พิกัด Slope เท่ากัน Distance เท่ากัน QED
สรุป
เส้นกึ่งกลางสามเหลี่ยม Midsegment MN=BC/2 ขนาน พื้นที่ 1/4 เส้นรอบรูป 1/2 Vector Proof Midpoint Distance Slope
