S.A.M.

24 Ιουνίου, 2022

Εμβαδόν τριγώνου

Κάτω από: manim,Γεωμετρία —Με ετικέτα ΧΡΗΣΤΟΣ ΣΑΜΟΥΗΛΙΔΗΣ @ 11:49 μμ

Μια απόδειξη χωρίς λόγια για την πρόταση:
Το εμβαδόν ενός τριγώνου είναι ίσο με το γινόμενο της ακτίνας (r) του εγγεγραμμένου κύκλου του και της ημιπεριμέτρου του τριγώνου (s).
Το βίντεο έγινε με το λογισμικό Manim.

from manim import *

class CreateCircle(Scene):
def construct(self):
circle = Circle() # create a circle
circle.set_fill(PINK, opacity=0.5) # set the color and transparency
self.play(Create(circle)) # show the circle on screen

class HelloLaTeX(Scene):
def construct(self):
tex = Tex(r"\LaTeX", font_size=144)
self.add(tex)

class MathTeXDemo(Scene):
def construct(self):
rtarrow0 = MathTex(r"\left(\sqrt{a^2-b^2}+\frac{\sqrt{3}a}{2}{ ,\ -}\frac{b}{2}{ \ }\right){ \ }\cdot \left(\frac{\sqrt{3}a}{2}-\sqrt{a^2-b^2},{ \ }\frac{b}{2}\right){ =0\ }\Longrightarrow", font_size=44)
rtarrow1 = Tex(r"$\frac{3a^2}{4}-\left({a^2-b^2}\right){ -}\frac{b^2}{4}{ =0}$", font_size=44)

self.add(VGroup(rtarrow0, rtarrow1).arrange(DOWN))

self.play(
rtarrow0.animate.rotate(PI), Rotate(rtarrow1, angle=PI), run_time=2
)
self.wait()
class BraceAnnotation(Scene):
def construct(self):
dot = Dot([-2, -1, 0])
dot2 = Dot([2, 1, 0])
line = Line(dot.get_center(), dot2.get_center()).set_color(ORANGE)
b1 = Brace(line)
b1text = b1.get_text("Horizontal distance")
b2 = Brace(line, direction=line.copy().rotate(PI / 2).get_unit_vector())
b2text = b2.get_tex("x-x_1")
self.add(line, dot, dot2, b1, b2, b1text, b2text)

class MobjectExample(Scene):

def construct(self):
myShift=4
p1= [1-myShift,1-myShift,0] #point a
p2= [9-myShift,1-myShift,0] #point b
p3= [3-myShift,5-myShift,0] #point c
p4= [3.63-myShift,2.63-myShift,0] #point I
p5= [3.62-myShift,1.02-myShift,0] #ποιντ Ε
p6= [4.53-myShift,3.98-myShift,0] #ποιντ z
p7= [2.18-myShift,3.35-myShift,0] #ποιντ H

trigono = Line(p1,p2).append_points(Line(p2,p3).points).append_points(Line(p3,p1).points)
aSide=Line(p1,p2) #side AB
bSide=Line(p2,p3) #side BC
cSide=Line(p3,p1) #side CA

a_text = Text('A').next_to(p1, DOWN)
b_text = Text('B').next_to(p2, DOWN)
c_text = Text('C').next_to(p3, UP)

self.add(aSide,a_text)
#self.play(FadeIn(aSide))
self.play(Create(aSide))
self.wait(1)

self.add(bSide,b_text)
self.play(FadeIn(bSide))
self.wait(1)

self.add(cSide,c_text)
self.play(FadeIn(cSide))
self.wait(1)

ai=Line(p1,p4)
self.my_draw_line(ai)
opposite_cSide=Line(p1,p3)
angle_text=r"\alpha"
self.my_draw_halfAngles(ai, aSide,opposite_cSide, angle_text)

bi=Line(p2,p4)
self.my_draw_line(bi)
opposite_aSide=Line(p2,p1)
angle_text=r"\beta"
self.my_draw_halfAngles(bi, bSide,opposite_aSide,angle_text)

# line = Line(p4.get_center(), p4.get_center()).set_color(ORANGE)

i_text = Text('I').next_to(p4, UP)
self.add(i_text)
#self.play(FadeIn(cSide))
self.wait(1)

ci=Line(p3,p4)
self.my_draw_line(ci)
opposite_bSide=Line(p3,p2)
angle_text=r"\gamma"
self.my_draw_halfAngles(ci, cSide,opposite_bSide, angle_text)

plots = VGroup()

rightangles = [
RightAngle(Line(p1,p2), Line(p4,p5),length=0.3, quadrant=(-1,-1), color=RED),
RightAngle(Line(p2,p3), Line(p4,p6),length=0.3, quadrant=(-1,-1), color=RED),
RightAngle(Line(p3,p1), Line(p4,p7),length=0.3, quadrant=(-1,-1), color=RED),
]
for rightangle in rightangles:
plots.add(rightangle)#.set_fill(GREEN, opacity=1)

#p5= [3.62-myShift,1.02-myShift,0] #ποιντ Ε
r1=Line(p4,p5)
self.my_draw_line(r1)

e_text = Text('E',font_size=36,color=RED).next_to(p5, DOWN)
plots.add(e_text)
#self.wait(1)

#p6= [4.53-myShift,3.98-myShift,0] #ποιντ z
r2=Line(p4,p6)
self.my_draw_line(r2)
z_text = Text('Z',font_size=36,color=RED).next_to(p6, RIGHT)
plots.add(z_text)
#p7= [2.18-myShift,3.35-myShift,0] #ποιντ H
r3=Line(p4,p7)
self.my_draw_line(r3)
h_text = Text('H',font_size=36,color=RED).next_to(p7, LEFT)
plots.add(h_text)

r_text = Text('r',color=RED).next_to(r2, UP).shift(0.7*DOWN)
plots.add(r_text)
r_text = Text('r',color=RED).next_to(r3, DOWN).shift(0.4*UP)
plots.add(r_text)
r_text = Text('r',color=RED).next_to(r1, RIGHT)
plots.add(r_text)
self.play(Create(plots),run_time=3)

inCircle = Circle(1.63).shift(p4) #p4.y-p1.y=1.63 ok
self.add(inCircle)
self.play(Create(inCircle))
self.wait(1)

aei_triangle = Polygon(p1,p4,p5)
aei_triangle.set_fill(BLUE, opacity=0.5) # set the color and transparency
self.play(Create(aei_triangle))

aeh_triangle = Polygon(p1,p4,p7)
aeh_triangle.set_fill(BLUE, opacity=0.5) # set the color and transparency
self.play(Create(aeh_triangle))

q1= [0-myShift,6-myShift,0] #point Θ
q2= [2.62-myShift,6-myShift,0] #point ι
q3= [2.62-myShift,7.63-myShift,0] #point k
q4= [0-myShift,7.63-myShift,0] #point l
aei_transferred_triangle = Polygon(q1,q2,q3)
aeh_transferred_triangle = Polygon(q1,q3,q4)
self.play(Transform(aei_triangle, aei_transferred_triangle))
self.play(Transform(aeh_triangle, aeh_transferred_triangle))
x1_text = Text('x', font_size=36,color=BLUE).next_to(Line(p1,p5), DOWN)
x2_text = Text('x', font_size=36,color=BLUE).next_to(Line(p1,p7), LEFT).shift(0.6*RIGHT)
x3_text = Text('x', font_size=36,color=BLUE).next_to(Line(q1,q2), DOWN)
self.play(
Line(p1,p5).animate.rotate(PI),x1_text.animate.rotate(PI),
Line(p1,p7).animate.rotate(PI),x2_text.animate.rotate(PI),
Line(q1,q2).animate.rotate(PI),x3_text.animate.rotate(PI), run_time=4

)
self.wait(1)

bei_triangle = Polygon(p2,p4,p5)
bei_triangle.set_fill(YELLOW, opacity=0.5) # set the color and transparency
self.play(Create(bei_triangle))

bez_triangle = Polygon(p2,p4,p6)
bez_triangle.set_fill(YELLOW, opacity=0.5) # set the color and transparency
self.play(Create(bez_triangle))

s1= q2 #point ι
s2= q3 #point k
s3= [8-myShift,6-myShift,0] #point M
s4= [8-myShift,7.63-myShift,0] #point N
bei_transferred_triangle = Polygon(s1,s2,s3)
bez_transferred_triangle = Polygon(s2,s3,s4)
self.play(Transform(bei_triangle, bei_transferred_triangle))
self.play(Transform(bez_triangle, bez_transferred_triangle))
y1_text = Text('y', font_size=36,color=YELLOW).next_to(Line(p2,p5), DOWN)
y2_text = Text('y', font_size=36,color=YELLOW).next_to(Line(p2,p6), RIGHT).shift(2*LEFT)
y3_text = Text('y', font_size=36,color=YELLOW).next_to(Line(s1,s3), DOWN)
shapes = VGroup(y1_text ,Line(p2,p5),y2_text,Line(p2,p6),y3_text,Line(s1,s3))
self.play(ShowIncreasingSubsets(shapes),run_time=1.5)
self.wait(1)

##
chi_triangle = Polygon(p3,p4,p6)
chi_triangle.set_fill(GREEN, opacity=0.5) # set the color and transparency
self.play(Create(chi_triangle))

czi_triangle = Polygon(p3,p7,p4)
czi_triangle.set_fill(GREEN, opacity=0.5) # set the color and transparency
self.play(Create(czi_triangle))

t1= s3 #point M
t2= s4 #point N
t3= [9.62-myShift,6-myShift,0] #point ksi
t4= [9.62-myShift,7.63-myShift,0] #point o
chi_transferred_triangle = Polygon(t1,t2,t3)
czi_transferred_triangle = Polygon(t3,t2,t4)
self.play(Transform(chi_triangle, chi_transferred_triangle))
self.play(Transform(czi_triangle, czi_transferred_triangle))
z1_text = Text('z', font_size=36,color=GREEN).next_to(Line(p3,p6), RIGHT).shift(0.5*LEFT)
z2_text = Text('z', font_size=36,color=GREEN).next_to(Line(p3,p7), LEFT).shift(.5*RIGHT)
z3_text = Text('z', font_size=36,color=GREEN).next_to(Line(t1,t3), DOWN)
shapes = VGroup(z2_text ,z1_text,z3_text)
self.play(ShowIncreasingSubsets(shapes),run_time=1.5)
self.wait(1)

rr2_text = Text('r', font_size=36,color=RED).next_to(Line(q1,q4), LEFT)
shapes = VGroup(rr2_text ,Line(p4,p5),Line(q1,q4),r_text)
self.play(ShowIncreasingSubsets(shapes),run_time=1.5)
self.wait(1)

blue_rectangle = Polygon(q1,q4,t4,t3).set_fill(BLUE, opacity=0.5) # set the color and transparency
self.play(Create(blue_rectangle))
final_tex0 = MathTex(r"(BlueRectangle)=r\cdot(x+y+z)", color=GOLD, font_size=36).to_corner(RIGHT).shift(UP)
self.add(final_tex0)
self.wait(1.5)
self.play(Uncreate(blue_rectangle))

final_tex0_5= MathTex(r"(BlueRectangle)=(ABC)", color=GOLD, font_size=36).to_corner(RIGHT).shift(0.5*UP)
self.add(final_tex0_5)
self.wait(1)

self.play(Create(trigono.set_fill(BLUE, opacity=0.5)))
final_tex1 = MathTex(r"(ABC)=r \cdot (x+y+z)", color=GOLD, font_size=36).to_corner(RIGHT).shift(0.5*UP)
self.play(TransformMatchingTex(final_tex0_5, final_tex1))
self.wait(1.5)
self.play(Uncreate(trigono))

perimeter1 = MathTex("perimeter=","AB","+","BC","+","CA",color=GOLD, font_size=36).to_corner(LEFT).shift(UP+0.4*LEFT)
perimeter2 = MathTex("perimeter=","x+y","+","y+z","+","z+x",color=GOLD, font_size=36).to_corner(LEFT).shift(UP+0.4*LEFT)
perimeter3 = MathTex("perimeter=","2","*","(x+y+z)",color=GOLD, font_size=36).to_corner(LEFT).shift(UP+0.4*LEFT)
perimeter4 = MathTex("2s=","2","*","(x+y+z)",color=GOLD, font_size=36).to_corner(LEFT).shift(UP+0.4*LEFT)
perimeter5 = MathTex("s=","x+y+z",color=GOLD, font_size=36).to_corner(LEFT).shift(UP+0.4*LEFT)

self.add(perimeter1)
self.wait(1.5)
self.play(TransformMatchingTex(perimeter1, perimeter2))
self.wait(1.5)
self.play(TransformMatchingTex(perimeter2, perimeter3))
self.wait(1)
self.play(TransformMatchingTex(perimeter3, perimeter4))
self.wait(0.5)
self.play(TransformMatchingTex(perimeter4, perimeter5))
self.wait(0.5)

final_tex2 = MathTex(r"(ABC)=r \cdot s", color=GOLD, font_size=36).to_corner(RIGHT).shift(0.5*UP)
self.play(TransformMatchingTex(final_tex1, final_tex2))
self.wait(1.5)

framebox1 = SurroundingRectangle(final_tex2, buff = .1)
self.play(Create(framebox1),)
self.wait()
final_tex3 = Text("The Area of a triangle \nis equal to the product\nof its inradius (r) \nand semiperimeter (s)", color=GOLD, font_size=24).next_to((final_tex2),DOWN).shift(0.5*LEFT)
self.play(FadeIn(final_tex3))
self.wait(1)

framebox2 = SurroundingRectangle(final_tex3, buff = .1)
self.play(ReplacementTransform(framebox1,framebox2),)

self.wait(1)

def my_draw_line(self,r):
self.add(r)
self.play(Create(r))
self.wait(1)

def my_draw_halfAngles(self,ai, aSide,opposite_cSide,angle_text):
a_1 = Angle(aSide, ai, radius=0.5, other_angle=False)
tex1 = MathTex(angle_text).move_to(
Angle(
aSide, ai, radius=0.5 + 3 * SMALL_BUFF, other_angle=False
).point_from_proportion(0.5)
)
a_2 = Angle(ai, opposite_cSide, radius=0.5, other_angle=False)
tex2 = MathTex(angle_text).move_to(
Angle(
ai, opposite_cSide, radius=0.5 + 3 * SMALL_BUFF, other_angle=False
).point_from_proportion(0.5)
)
## self.add(a_1, tex1, a_2, tex2)
self.play(FadeIn(a_1))
self.play(FadeIn(tex1))
self.play(FadeIn(a_2))
self.play(FadeIn(tex2))
self.wait()

Αφήστε μια απάντηση

©2024 S.A.M. Φιλοξενείται από Blogs.sch.gr

Αλλαγή μεγέθους γραμματοσειράς
Αντίθεση