Twierdzenie (Morley):#
Przecięcie półprostych wyznaczających podział kąta na trzy części zadaje trzy punkty określające trójkąt równoboczny.
Uwagi:
Teza nie zależy od ułożenia trójkąta na płaszczyźnie.
Teza nie zależy od skali.
Wniosek: Możemy zatem wybrać trójkąt z jednym wierzchołkiem w punkcie \((0,0)\). Krawędź poprowadzona do punktu \((1,0)\) zadaje jeden z boków trójkąta. Drugi bok leży pod kątem \(x\) do osi \(OX\). Trzecia krawędź tworzy kąt \(y\) pierwszą.
Wniosek: Z twierdzenia sinusów długość krawędzi pod kątem \(x\) wynosi \(\frac{\sin y}{sin(\pi-(x+y))}\)
t,s,x,y=var('t,s,x,y')
vect1=t*vector((cos(1/3*x), sin(1/3*x)));
vect2=vector((1, 0)) + s*vector((cos(pi - 1/3*y), sin(pi - 1/3*y)));
pretty_print(vect1)
pretty_print(vect2)
#rozwiązujemy równanie vect1==vect2
pretty_print(solve([-s*cos(pi - 1/3*y) + t*cos(1/3*x) - 1==0, -s*sin(pi - 1/3*y) + t*sin(1/3*x)==0],(t,s)))
#Zatem pierwszy z wierzchołków trójkąta Morleya ma postać
sol1=solve([-s*cos(pi - 1/3*y) + t*cos(1/3*x) - 1==0, -s*sin(pi - 1/3*y) + t*sin(1/3*x)==0],(t,s));
mor1=vect1.subs(sol1[0][0]);
pretty_print(mor1)
u,v=var('u,v')
r=sin(y)/(sin(pi-(x+y)))
vect3=u*vector((cos(2/3*x), sin(2/3*x)));
vect4=r*vector((cos(x), sin(x))) + v*vector((cos(x + pi + 1/3*(pi - (x + y))), sin(x + pi + 1/3*(pi - (x + y)))));
pretty_print(vect3)
pretty_print(vect4)
#rozwiązujemy równanie vect3==vect4
pretty_print(solve([(vect3-vect4)[0]==0,(vect3-vect4)[1]==0],(u,v)))
#Drugi z wierzchołków trójkąta Morleya ma postać
sol2=solve([(vect3-vect4)[0]==0,(vect3-vect4)[1]==0],(u,v));
mor2=vect3.subs(sol2[0][0]);
pretty_print(mor2)
m,n=var('m,n')
vect5=r*vector((cos(x), sin(x)))+m*vector((cos(x + pi + 2/3*(pi - (x + y))), sin(x + pi + 2/3*(pi - (x + y)))));
vect6=vector((1, 0)) + n*vector((cos(pi - 2/3*y), sin(pi - 2/3*y)));
pretty_print(vect5)
pretty_print(vect6)
#rozwiązujemy równanie vect5==vect6
pretty_print(solve([(vect5-vect6)[0]==0,(vect5-vect6)[1]==0],(m,n)))
#Trzeci z wierzchołków trójkąta Morleya ma postać
sol3=solve([(vect5-vect6)[0]==0,(vect5-vect6)[1]==0],(m,n));
mor3=vect5.subs(sol3[0][0]);
pretty_print(mor3)
d12=(mor1-mor2)*(mor1-mor2);
d13=(mor1-mor3)*(mor1-mor3);
d23=(mor2-mor3)*(mor2-mor3);
pretty_print(d23)
#sprawdzenie, że długości boków trójkąta Morleya są równe (dla kątów x=pi/4, y=pi/4)
print (d12-d13).subs(x=pi/4,y=pi/4).simplify_full()
print (d12-d23).subs(x=pi/4,y=pi/4).simplify_full()
0
0
bok31_obr=(matrix(2,2,[cos(pi/3),-sin(pi/3),sin(pi/3),cos(pi/3)])*(mor3-mor1));
bok21=mor2-mor1;
#sprawdzimy, że bok 31 po obrocie o 60 stopni staje sie bokiem 21
roznica=bok31_obr-bok21; #powinna być równa wektorowi (0,0)
print roznica[0].subs(x=3*x,y=3*y).expand_trig().canonicalize_radical().simplify_full()
print roznica[1].subs(x=3*x,y=3*y).expand_trig().canonicalize_radical().simplify_full()
0
0
#kwadrat długości krawędzi trójkąta Morleya dla kątów x=pi/4 i y=pi/4
krawedz_spec=(((mor2-mor1).subs(x=pi/4,y=pi/4)).canonicalize_radical().simplify_full());
((krawedz_spec*krawedz_spec).canonicalize_radical().simplify_full())
-1/4*(sqrt(3) - 2)/(sqrt(3) + 2)
#po uproszczeniu otrzymamy 7/4-sqrt(3)
(-1/4*(sqrt(3) - 2)/(sqrt(3) + 2) -(7/4-sqrt(3))).simplify_full()
0
#Ilustracja
r
sin(y)/sin(pi - x - y)
# Rozwiązanie ogólne
sx,cx,sy,cy=var('sx,cx,sy,cy')
d12e=(d12.subs({x:3*x,y:3*y}).trig_expand().trig_expand()).subs({cos(x):cx,cos(y):cy,sin(x):sx,sin(y):sy})
d13e=(d13.subs({x:3*x,y:3*y}).trig_expand().trig_expand()).subs({cos(x):cx,cos(y):cy,sin(x):sx,sin(y):sy})
d23e=(d23.subs({x:3*x,y:3*y}).trig_expand().trig_expand()).subs({cos(x):cx,cos(y):cy,sin(x):sx,sin(y):sy})
print((d12e-d13e).factor())
print((d12e-d23e).factor())
0
0
#dynamiczne wyświetlanie
@interact
def TrojkatMorleya(x = slider(srange(0.1,pi-0.1,0.05),default = pi/4, label="x"),
y = slider(srange(0.1,pi-0.1,0.05),default = pi/4, label="y")):
r=sin(y)/sin(pi - x - y)
gra=Graphics()
v1=(0,0)
v2=(1,0)
v3=(r*cos(x),r*sin(x))
gra=gra+polygon([v1,v2,v3])
p1=(cos(1/3*x)*sin(1/3*y)/(cos(1/3*y)*sin(1/3*x) + cos(1/3*x)*sin(1/3*y)),
sin(1/3*x)*sin(1/3*y)/(cos(1/3*y)*sin(1/3*x) + cos(1/3*x)*sin(1/3*y)))
p2=((cos(x)*sin(-4/3*pi - 2/3*x + 1/3*y) + cos(-4/3*pi - 2/3*x + 1/3*y)*sin(x))
*cos(2/3*x)*sin(y)/((cos(2/3*x)*sin(-4/3*pi - 2/3*x + 1/3*y)
+ cos(-4/3*pi - 2/3*x + 1/3*y)*sin(2/3*x))*sin(x + y)),
(cos(x)*sin(-4/3*pi - 2/3*x + 1/3*y) + cos(-4/3*pi - 2/3*x + 1/3*y)*sin(x))
*sin(2/3*x)*sin(y)/((cos(2/3*x)*sin(-4/3*pi - 2/3*x + 1/3*y)
+ cos(-4/3*pi - 2/3*x + 1/3*y)*sin(2/3*x))*sin(x + y)))
p3=(cos(x)*sin(y)/sin(pi - x - y) - (sin(x + y)*sin(2/3*y) - (cos(2/3*y)*sin(x) + cos(x)*sin(2/3*y))
*sin(y))*cos(5/3*pi + 1/3*x - 2/3*y)/((cos(2/3*y)
*sin(-5/3*pi - 1/3*x + 2/3*y) - cos(-5/3*pi - 1/3*x + 2/3*y)*sin(2/3*y))*sin(x + y)),
sin(x)*sin(y)/sin(pi - x - y) - (sin(x + y)*sin(2/3*y) - (cos(2/3*y)*sin(x) + cos(x)*sin(2/3*y))
*sin(y))*sin(5/3*pi + 1/3*x - 2/3*y)/((cos(2/3*y)*sin(-5/3*pi - 1/3*x + 2/3*y)
- cos(-5/3*pi - 1/3*x + 2/3*y)*sin(2/3*y))*sin(x + y)))
gra=gra+polygon([p1,p2,p3],color='red')
gra=gra+line([v1,p1],color='yellow')
gra=gra+line([v1,p2],color='yellow')
gra=gra+line([v2,p3],color='yellow')
gra=gra+line([v2,p1],color='yellow')
gra=gra+line([v3,p2],color='yellow')
gra=gra+line([v3,p3],color='yellow')
show(gra,figsize=[4,4],xmin=-0.1,xmax=2,ymin=-0.1,ymax=2)