latest

bài tập đường trung bình

bài tập đường trung bình

Bài Tập Đường Trung Bình — แบบฝึกหัดเส้นกึ่งกลางสามเหลี่ยม

bài tập đường trung bình

Đường trung bình (เส้นกึ่งกลาง หรือ Midsegment) ของสามเหลี่ยมคือส่วนของเส้นตรงที่เชื่อมจุดกึ่งกลางของด้านสองด้าน คุณสมบัติสำคัญคือ เส้นกึ่งกลางขนานกับด้านที่สามและมีความยาวเท่ากับครึ่งหนึ่งของด้านนั้น ทฤษฎีนี้เป็นพื้นฐานสำคัญในเรขาคณิตที่ใช้ในการแก้โจทย์หลากหลาย บทความนี้รวบรวมแบบฝึกหัดพร้อมเฉลยและ Python tools สำหรับคำนวณและพิสูจน์

ทฤษฎีเส้นกึ่งกลาง (Midsegment Theorem)

# midsegment_theory.py — Midsegment theorem

import json

import math



class MidsegmentTheorem:

    THEOREM = {

        "statement": "เส้นกึ่งกลางของสามเหลี่ยม = ขนานกับด้านที่สาม และยาวเท่ากับครึ่งหนึ่งของด้านนั้น",

        "formal": "ถ้า M เป็นจุดกึ่งกลางของ AB และ N เป็นจุดกึ่งกลางของ AC → MN // BC และ MN = BC/2",

        "corollaries": [

            "สามเหลี่ยมมีเส้นกึ่งกลาง 3 เส้น (ต่อด้านละ 1)",

            "เส้นกึ่งกลาง 3 เส้น แบ่งสามเหลี่ยมออกเป็น 4 สามเหลี่ยมเท่ากัน",

            "สามเหลี่ยมที่เกิดจากเส้นกึ่งกลาง คล้ายกับสามเหลี่ยมเดิม (อัตราส่วน 1:2)",

        ],

    }



    PROPERTIES = {

        "parallel": "MN // BC (ขนานกับด้านที่สาม)",

        "half_length": "MN = BC / 2 (ยาวครึ่งหนึ่ง)",

        "area": "พื้นที่สามเหลี่ยม MN = 1/4 ของสามเหลี่ยมเดิม",

        "perimeter": "เส้นรอบรูปสามเหลี่ยมเส้นกึ่งกลาง = 1/2 ของสามเหลี่ยมเดิม",

    }



    def show_theorem(self):

        print("=== Midsegment Theorem ===\n")

        print(f"  {self.THEOREM['statement']}")

        print(f"\n  Formal: {self.THEOREM['formal']}")

        print(f"\n  Corollaries:")

        for c in self.THEOREM['corollaries']:

            print(f"    • {c}")



    def show_properties(self):

        print(f"\n=== Properties ===")

        for key, prop in self.PROPERTIES.items():

            print(f"  [{key}] {prop}")



theorem = MidsegmentTheorem()

theorem.show_theorem()

theorem.show_properties()

แบบฝึกหัดพื้นฐาน

# basic_exercises.py — Basic midsegment exercises

import json

import math



class BasicExercises:

    EXERCISES = {

        "ex1": {

            "question": "สามเหลี่ยม ABC มี BC = 12 cm, M เป็นจุดกึ่งกลาง AB, N เป็นจุดกึ่งกลาง AC จงหาความยาว MN",

            "solution": "MN = BC / 2 = 12 / 2 = 6 cm",

            "answer": 6,

        },

        "ex2": {

            "question": "สามเหลี่ยม PQR มีเส้นกึ่งกลาง DE = 8 cm (ขนานกับ QR) จงหาความยาว QR",

            "solution": "DE = QR / 2 → QR = DE × 2 = 8 × 2 = 16 cm",

            "answer": 16,

        },

        "ex3": {

            "question": "สามเหลี่ยม ABC มี AB = 10, BC = 14, CA = 12 จงหาเส้นรอบรูปของสามเหลี่ยมเส้นกึ่งกลาง",

            "solution": "เส้นกึ่งกลาง = ครึ่งหนึ่งของด้านตรงข้าม → เส้นรอบรูป = (10+14+12)/2 = 18",

            "answer": 18,

        },

        "ex4": {

            "question": "สามเหลี่ยม ABC มีพื้นที่ 48 ตร. ซม. จงหาพื้นที่สามเหลี่ยมที่เกิดจากเส้นกึ่งกลาง 3 เส้น",

            "solution": "พื้นที่สามเหลี่ยมเส้นกึ่งกลาง = 1/4 ของสามเหลี่ยมเดิม = 48/4 = 12 ตร. ซม.",

            "answer": 12,

        },

        "ex5": {

            "question": "สามเหลี่ยม XYZ มี XY = 6, YZ = 10, XZ = 8 จงหาความยาวเส้นกึ่งกลางทั้ง 3 เส้น",

            "solution": "m1 (ขนาน YZ) = 10/2 = 5, m2 (ขนาน XZ) = 8/2 = 4, m3 (ขนาน XY) = 6/2 = 3",

            "answer": [5, 4, 3],

        },

    }



    def show_exercises(self):

        print("=== แบบฝึกหัดพื้นฐาน ===\n")

        for key, ex in self.EXERCISES.items():

            print(f"[{key}] {ex['question']}")

            print(f"  Solution: {ex['solution']}")

            print(f"  Answer: {ex['answer']}")

            print()



exercises = BasicExercises()

exercises.show_exercises()

แบบฝึกหัดประยุกต์

bài tập đường trung bình
# advanced_exercises.py — Advanced midsegment exercises

import json

import math



class AdvancedExercises:

    EXERCISES = {

        "ex6": {

            "question": "สามเหลี่ยม ABC มี A(0,0), B(8,0), C(4,6) จงหาพิกัดจุดกึ่งกลางและความยาวเส้นกึ่งกลางที่ขนาน BC",

            "solution": """

M = จุดกึ่งกลาง AB = ((0+8)/2, (0+0)/2) = (4, 0)

N = จุดกึ่งกลาง AC = ((0+4)/2, (0+6)/2) = (2, 3)

MN = sqrt((4-2)² + (0-3)²) = sqrt(4+9) = sqrt(13) ≈ 3.61

BC = sqrt((8-4)² + (0-6)²) = sqrt(16+36) = sqrt(52) ≈ 7.21

MN = BC/2 ✓ (sqrt(13) = sqrt(52)/2)""",

            "answer": "MN = √13 ≈ 3.61",

        },

        "ex7": {

            "question": "พิสูจน์ว่าเส้นกึ่งกลาง 3 เส้นแบ่งสามเหลี่ยมออกเป็น 4 สามเหลี่ยมที่มีพื้นที่เท่ากัน",

            "solution": """

สมมติสามเหลี่ยม ABC มีพื้นที่ S

เส้นกึ่งกลาง D(กึ่งกลาง AB), E(กึ่งกลาง BC), F(กึ่งกลาง AC)

สามเหลี่ยม ADF: ด้าน AD = AB/2, AF = AC/2, มุม A เท่ากัน

→ พื้นที่ ADF = (1/2)(AB/2)(AC/2)sin(A) = S/4

เช่นเดียวกัน: BDE = S/4, CEF = S/4, DEF = S/4

รวม 4 สามเหลี่ยม = S ✓""",

            "answer": "แต่ละสามเหลี่ยม = S/4",

        },

        "ex8": {

            "question": "สี่เหลี่ยม ABCD มีจุดกึ่งกลาง E, F, G, H ของด้าน AB, BC, CD, DA ตามลำดับ พิสูจน์ว่า EFGH เป็นสี่เหลี่ยมด้านขนาน",

            "solution": """

ใช้ทฤษฎีเส้นกึ่งกลางกับเส้นทแยงมุม:

สามเหลี่ยม ABD: EH เป็นเส้นกึ่งกลาง → EH // BD, EH = BD/2

สามเหลี่ยม BCD: FG เป็นเส้นกึ่งกลาง → FG // BD, FG = BD/2

ดังนั้น EH // FG และ EH = FG → EFGH เป็นสี่เหลี่ยมด้านขนาน ✓

(ทฤษฎี Varignon's Theorem)""",

            "answer": "EFGH เป็นสี่เหลี่ยมด้านขนาน (Varignon)",

        },

    }



    def show_exercises(self):

        print("=== แบบฝึกหัดประยุกต์ ===\n")

        for key, ex in self.EXERCISES.items():

            print(f"[{key}] {ex['question']}")

            print(f"  Answer: {ex['answer']}")

            print()



adv = AdvancedExercises()

adv.show_exercises()

Python Solver

# solver.py — Python midsegment solver

import json

import math



class MidsegmentSolver:

    CODE = """

# midsegment_solver.py — Solve midsegment problems

import math

from typing import Tuple



Point = Tuple[float, float]



class MidsegmentSolver:

    @staticmethod

    def midpoint(p1: Point, p2: Point) -> Point:

        '''Calculate midpoint'''

        return ((p1[0]+p2[0])/2, (p1[1]+p2[1])/2)

    

    @staticmethod

    def distance(p1: Point, p2: Point) -> float:

        '''Calculate distance'''

        return math.sqrt((p2[0]-p1[0])**2 + (p2[1]-p1[1])**2)

    

    @staticmethod

    def midsegment_length(side_length: float) -> float:

        '''Midsegment = half of parallel side'''

        return side_length / 2

    

    @staticmethod

    def side_from_midsegment(midsegment_length: float) -> float:

        '''Find side from midsegment'''

        return midsegment_length * 2

    

    def all_midsegments(self, a: float, b: float, c: float):

        '''Calculate all 3 midsegments from sides a, b, c'''

        return {

            'parallel_to_a': a / 2,

            'parallel_to_b': b / 2,

            'parallel_to_c': c / 2,

            'midsegment_perimeter': (a + b + c) / 2,

        }

    

    def midsegment_triangle_area(self, original_area: float) -> float:

        '''Area of midsegment triangle = 1/4 of original'''

        return original_area / 4

    

    def solve_coordinate(self, A: Point, B: Point, C: Point):

        '''Solve midsegment problem with coordinates'''

        # Midpoints

        M_ab = self.midpoint(A, B)

        M_bc = self.midpoint(B, C)

        M_ac = self.midpoint(A, C)

        

        # Sides

        AB = self.distance(A, B)

        BC = self.distance(B, C)

        AC = self.distance(A, C)

        

        # Midsegments

        ms1 = self.distance(M_ab, M_ac)  # parallel to BC

        ms2 = self.distance(M_ab, M_bc)  # parallel to AC

        ms3 = self.distance(M_ac, M_bc)  # parallel to AB

        

        # Verify theorem

        return {

            'vertices': {'A': A, 'B': B, 'C': C},

            'midpoints': {'M_AB': M_ab, 'M_BC': M_bc, 'M_AC': M_ac},

            'sides': {'AB': round(AB, 4), 'BC': round(BC, 4), 'AC': round(AC, 4)},

            'midsegments': {

                'parallel_BC': round(ms1, 4),

                'parallel_AC': round(ms2, 4),

                'parallel_AB': round(ms3, 4),

            },

            'verification': {

                'ms1 = BC/2': round(ms1, 4) == round(BC/2, 4),

                'ms2 = AC/2': round(ms2, 4) == round(AC/2, 4),

                'ms3 = AB/2': round(ms3, 4) == round(AB/2, 4),

            },

        }

    

    def is_parallel(self, p1: Point, p2: Point, p3: Point, p4: Point) -> bool:

        '''Check if line p1p2 is parallel to line p3p4'''

        dx1 = p2[0] - p1[0]

        dy1 = p2[1] - p1[1]

        dx2 = p4[0] - p3[0]

        dy2 = p4[1] - p3[1]

        

        cross = dx1 * dy2 - dy1 * dx2

        return abs(cross) < 1e-10



# solver = MidsegmentSolver()

# result = solver.solve_coordinate((0,0), (8,0), (4,6))

# print(result)

"""



    def show_code(self):

        print("=== Midsegment Solver ===")

        print(self.CODE[:600])



    def demo(self):

        print(f"\n=== Demo: Triangle (0,0), (8,0), (4,6) ===")

        A, B, C = (0,0), (8,0), (4,6)

        M_ab = ((A[0]+B[0])/2, (A[1]+B[1])/2)

        M_ac = ((A[0]+C[0])/2, (A[1]+C[1])/2)

        BC = math.sqrt((B[0]-C[0])**2 + (B[1]-C[1])**2)

        ms = math.sqrt((M_ab[0]-M_ac[0])**2 + (M_ab[1]-M_ac[1])**2)

        print(f"  M_AB = {M_ab}, M_AC = {M_ac}")

        print(f"  BC = {BC:.4f}")

        print(f"  Midsegment = {ms:.4f}")

        print(f"  BC/2 = {BC/2:.4f}")

        print(f"  Verified: {abs(ms - BC/2) < 0.001}")



solver = MidsegmentSolver()

solver.show_code()

solver.demo()

แบบฝึกหัดเพิ่มเติม

# more_exercises.py — More practice problems

import json



class MoreExercises:

    PRACTICE = {

        "p1": {

            "level": "ง่าย",

            "question": "สามเหลี่ยมมีด้าน 6, 8, 10 จงหาเส้นรอบรูปสามเหลี่ยมเส้นกึ่งกลาง",

            "answer": "(6+8+10)/2 = 12",

        },

        "p2": {

            "level": "ง่าย",

            "question": "เส้นกึ่งกลาง MN ขนานกับ BC ยาว 7 cm จงหา BC",

            "answer": "BC = 7 × 2 = 14 cm",

        },

        "p3": {

            "level": "ปานกลาง",

            "question": "สามเหลี่ยม ABC มีพื้นที่ 100 ตร. ซม. จงหาพื้นที่สามเหลี่ยม 4 รูปที่เกิดจากเส้นกึ่งกลาง",

            "answer": "แต่ละรูป = 100/4 = 25 ตร. ซม.",

        },

        "p4": {

            "level": "ปานกลาง",

            "question": "สามเหลี่ยม A(2,1), B(10,1), C(6,9) จงหาความยาวเส้นกึ่งกลางที่ขนาน AB",

            "answer": "AB = 8, เส้นกึ่งกลาง = 8/2 = 4",

        },

        "p5": {

            "level": "ยาก",

            "question": "สามเหลี่ยมหน้าจั่ว AB = AC = 13, BC = 10 จงหาความยาวเส้นกึ่งกลางทุกเส้น",

            "answer": "ขนาน BC = 5, ขนาน AB = 6.5, ขนาน AC = 6.5",

        },

        "p6": {

            "level": "ยาก",

            "question": "สี่เหลี่ยมคางหมู ABCD มี AB // CD, AB = 16, CD = 8 จุดกึ่งกลาง AD = M, BC = N จงหา MN",

            "answer": "MN = (AB + CD)/2 = (16+8)/2 = 12 (เส้นกึ่งกลางสี่เหลี่ยมคางหมู)",

        },

        "p7": {

            "level": "ยาก",

            "question": "พิสูจน์ว่า จุดกึ่งกลางของด้านทั้ง 4 ของสี่เหลี่ยมใดๆ เมื่อเชื่อมต่อกันจะได้สี่เหลี่ยมด้านขนาน",

            "answer": "ใช้ Varignon's Theorem: เส้นกึ่งกลางของสามเหลี่ยมที่แบ่งด้วยเส้นทแยงมุม ขนานกัน",

        },

    }



    def show_practice(self):

        print("=== แบบฝึกหัดเพิ่มเติม ===\n")

        for key, p in self.PRACTICE.items():

            print(f"[{key}] ({p['level']}) {p['question']}")

            print(f"  Answer: {p['answer']}")

            print()



more = MoreExercises()

more.show_practice()

FAQ - คำถามที่พบบ่อย

Q: เส้นกึ่งกลางกับเส้นมัธยฐาน (Median) ต่างกันอย่างไร?

อ่านเพิ่ม: Concurrency และ Parallelism คืออะไร? สอนเขียนโปรแกรมแบบ Asyn · อ่านเพิ่ม: System Design คืออะไร? สอนออกแบบระบบ สำหรับ Senior Developer · อ่านเพิ่ม: Regular Expression (Regex) คืออะไร? สอน Regex ตั้งแต่เริ่มต้

เนื้อหาเกี่ยวข้อง — ดูเพิ่มเติมเรื่อง Vector Database Pinecone สำหรับมือใหม่ Step by

A: เส้นกึ่งกลาง (Midsegment): เชื่อมจุดกึ่งกลางของ 2 ด้าน → ขนานกับด้านที่ 3, ยาว = ครึ่งหนึ่งของด้านที่ 3 เส้นมัธยฐาน (Median): เชื่อมจุดยอดกับจุดกึ่งกลางของด้านตรงข้าม → ผ่าน centroid มีสามเหลี่ยมละ 3 เส้นกึ่งกลาง และ 3 เส้นมัธยฐาน

แนะนำเพิ่มเติม — เรียนเทรดกับ iCafeForex

Q: ทำไมพื้นที่สามเหลี่ยมเส้นกึ่งกลาง = 1/4?

เนื้อหาเกี่ยวข้อง — บทความที่เกี่ยวข้อง: OPA Gatekeeper Micro-segmentation

A: เพราะสามเหลี่ยมเส้นกึ่งกลางมีด้านยาว = 1/2 ของสามเหลี่ยมเดิมทุกด้าน อัตราส่วนความคล้าย = 1:2 → อัตราส่วนพื้นที่ = (1/2)² = 1/4 อีกวิธี: เส้นกึ่งกลาง 3 เส้นแบ่งสามเหลี่ยมเป็น 4 รูปเท่ากัน → สามเหลี่ยมตรงกลาง = 1/4 ✓

Q: Varignon's Theorem คืออะไร?

แนะนำเพิ่มเติม — สัญญาณเทรดรายวัน XM Signal

เนื้อหาเกี่ยวข้อง — ทำความเข้าใจ mounted vue คืออะไร ทำความเข้าใจกับ Lifecycle Hook ที่สำคัญสำหรับ Vue Develop…

A: จุดกึ่งกลางของด้านทั้ง 4 ของสี่เหลี่ยมใดๆ เมื่อเชื่อมต่อกันจะได้สี่เหลี่ยมด้านขนานเสมอ พิสูจน์: ใช้ทฤษฎีเส้นกึ่งกลางกับสามเหลี่ยม 2 รูปที่แบ่งด้วยเส้นทแยงมุม พื้นที่ Varignon parallelogram = 1/2 ของสี่เหลี่ยมเดิม ใช้ได้กับสี่เหลี่ยมทุกชนิด ไม่จำเป็นต้องเป็นสี่เหลี่ยมปกติ

Q: เส้นกึ่งกลางใช้ในชีวิตจริงอย่างไร?

เนื้อหาเกี่ยวข้อง — แนะนำให้อ่าน swift code กสิกรรหัสสาขา

A: สถาปัตยกรรม: คำนวณโครงสร้างหลังคาสามเหลี่ยม — ค้ำยันที่จุดกึ่งกลาง วิศวกรรม: truss bridge design — เส้นกึ่งกลางช่วยคำนวณแรง Computer Graphics: mesh subdivision — แบ่ง polygon ด้วยจุดกึ่งกลาง Navigation: หาจุดกึ่งกลางระหว่าง 2 ตำแหน่ง — GPS midpoint

XM Legend · เทรดเดอร์ & ผู้สอน Forex 13 ปี

ผู้ก่อตั้ง SiamCafe ตั้งแต่ปี 1997 · เทรดเดอร์สาย Forex มากกว่า 13 ปี ได้รับการยกย่องเป็น XM Legend · แบ่งปันความรู้ Forex, ไอที, AI และการเทรด จากประสบการณ์จริงในตลาดจริง