A Miquel-tétel egy fontos tétel a síkgeometriában, amely az érdemek körében a síkban lévő három pont és azokból húzott szakaszok metszéspontjait vizsgálja.
Adott három nem kollineáris pont ( A ), ( B ), és ( C ) a síkban, és három másik pontot ( P ), ( Q ) és ( R ) a következő módon: - ( P ) a ( BC ) szakaszra esik, - ( Q ) az ( AC ) szakaszra esik, - ( R ) az ( AB ) szakaszra esik.
Ha a három pontból, ( P ), ( Q ), és ( R ) különböző helyeken vannak, akkor a három szög, ( PQR ), ( QRP ), és ( RQP ), egy háromszöget alkotnak, és a három szög mindegyike egy-egy szakasz metszéspontjával egyetért.
A Miquel-tétel bizonyítását geometrikusan végezhetjük el a következő fő lépésekkel: 1. Először is hozzunk létre egy háromszöget, és jelöljük a megfelelő pontokat. 2. Majd az egyes metszéspontok tulajdonságait vizsgáljuk, és igazoljuk, hogy valóban egy háromszöget alkotnak.
A Miquel-tétel bizonyításához általában az érdemi elemek geometriai tulajdonságait, mint az egymásra ható szakaszok metszését és az érdemek szimmetriáját, használjuk.
A Miquel-tétel geometriai implementációját leginkább számításos formában tudjuk modellezni, például egy háromszög pontjainak kiszámításával, és azok közötti szög- és távolságok meghatározásával.
Létrehozhatunk egy egyszerű Python szkriptet, amely a háromszög három pontjának segítségével kiszámítja azokat a metszéspontokat, amelyek a tételhez szükségesek:
import numpy as np
import matplotlib.pyplot as plt
# Segédfunkciók: Pont és vektor műveletek
def line_eq(p1, p2):
"""Vonal egyenlete két pont alapján: Ax + By + C = 0"""
A = p2 - p1
B = p1 - p2
C = p2 * p1 - p2 * p1
return A, B, C
def intersection(p1, p2, p3, p4):
"""Két egyenes metszéspontja"""
A1, B1, C1 = line_eq(p1, p2)
A2, B2, C2 = line_eq(p3, p4)
det = A1 * B2 - A2 * B1
if det == 0:
raise ValueError("Az egyenesek párhuzamosak, nem metszik egymást!")
x = (B1 * C2 - B2 * C1) / det
y = (C1 * A2 - C2 * A1) / det
return x, y
# Alap geometriai pontok (háromszög három csúcsa és egy pont a szakaszon)
A = np.array()
B = np.array()
C = np.array()
P = np.array() # P pont a BC szakaszon
Q = np.array() # Q pont az AC szakaszon
R = np.array() # R pont az AB szakaszon
# Vonalak metszéspontjainak számítása
inter1 = intersection(A, P, B, R) # A-P és B-R metszéspontja
inter2 = intersection(P, C, Q, R) # P-C és Q-R metszéspontja
inter3 = intersection(A, C, Q, B) # A-C és Q-B metszéspontja
# Tétel grafikus ábrázolása
plt.figure(figsize=(6, 6))
plt.plot(, B], , B], 'r-', label="AB szakasz")
plt.plot(, C], , C], 'g-', label="BC szakasz")
plt.plot(, A], , A], 'b-', label="AC szakasz")
plt.scatter(, B, C, P, Q, R], , B, C, P, Q, R], color='black')
plt.text(A, A, 'A', fontsize=12, ha='right')
plt.text(B, B, 'B', fontsize=12, ha='right')
plt.text(C, C, 'C', fontsize=12, ha='right')
plt.text(P, P, 'P', fontsize=12, ha='right')
plt.text(Q, Q, 'Q', fontsize=12, ha='right')
plt.text(R, R, 'R', fontsize=12, ha='right')
plt.scatter(, inter2, inter3], , inter2, inter3], color='red', label="Metszéspontok")
plt.legend()
plt.grid(True)
plt.show()
line_eq
függvény két pont segítségével kiszámítja egyenes egyenletét. Az intersection
függvény két egyenes metszéspontját számítja ki a két egyenes egyenletével.
A kód megjeleníti a háromszöget, a szakaszokat, és azokat a metszéspontokat, amelyek a Miquel-tételhez tartoznak, így vizuálisan is láthatjuk, hogyan épül fel a tétel. Az ábra tartalmazza a háromszöget, a szakaszokat, és a metszéspontokat, amelyek biztosítják a tétel érvényességét.