【问题标题】:How to get_lines from point to point in manim?如何在manim中从点到点get_lines?
【发布时间】:2023-01-21 06:14:54
【问题描述】:

当我尝试 get_horizontal_line 从一个点到另一个点时,它从 y 轴开始。我希望虚线从点[1;1] 指向[3;1]。因为现在从[0;1][3;1]直接来自轴坐标。

我不知道如何从轴而不是从点获取线。这也是我的代码:

from manim import *

class KvadratickaFunkcia(Scene):
    def construct(self):

        suradnicovaOs = Axes(                                                                
            x_range=[-8,8,1],
            y_range=[-8,8,1],
            tips=False,
            x_length=10,
            y_length=10,

            axis_config=
            {
            "stroke_color": GREY_A,
            "include_numbers": True,
            }
        )

       
        #vzorec  x-2
        posunParabolyVzorecMinus2a = MathTex("{y = (x-2)^2+0}", font_size=50).to_edge(UL).set_color(YELLOW)
        posunParabolyVzorecMinus2a[0][5].set_color(RED)
        posunParabolyVzorecMinus2a[0][9].set_color(RED)
        #vzorec parabola y: (y-2)**2+0
        parabolaMinus2a = suradnicovaOs.plot(lambda y: (y-2)**2+0 )
        #body 1,2,3
        bodMinus2a= Dot(suradnicovaOs.coords_to_point(1, 1), color=YELLOW)
        bodkociarkaMinus2a = suradnicovaOs.get_horizontal_line(suradnicovaOs.c2p(3,1))
        bodMinus2a2 = Dot(suradnicovaOs.coords_to_point(2, 0), color=YELLOW)
        bodkociarkaMinus2a2 = suradnicovaOs.get_vertical_line(suradnicovaOs.c2p(1,1))
        bodMinus2a3 = Dot(suradnicovaOs.coords_to_point(3, 1), color=YELLOW)
        bodkociarkaMinus2a3 = suradnicovaOs.get_vertical_line(suradnicovaOs.c2p(3,1))
        VsetkyBodyMinus123AA = VGroup(bodMinus2a,bodMinus2a2,bodMinus2a3,bodkociarkaMinus2a,bodkociarkaMinus2a2,bodkociarkaMinus2a3)

        self.play(Write(suradnicovaOs), run_time=3)
        self.play(Create(posunParabolyVzorecMinus2a))
        self.play(Create(VsetkyBodyMinus123AA))   
        self.wait()
        self.play(FadeIn(parabolaMinus2a)) 

我的问题图片:

【问题讨论】:

    标签: math coordinates axes quadratic manim


    【解决方案1】:

    欢迎来到 SO!可以使用这两个点的.get_center()功能,通过DashedLine2stroke_width连接起来。您应该忽略 bodkociarkaMinus2a 并使用以下行:

    my_line: DashedLine = DashedLine(
        bodMinus2a.get_center(), bodMinus2a3.get_center(),stroke_width = 2
    )
    

    这是完整的代码:

    from manim import *
    
    class KvadratickaFunkcia(Scene):
        def construct(self):
    
            suradnicovaOs = Axes(                                                                
                x_range=[-8,8,1],
                y_range=[-8,8,1],
                tips=False,
                x_length=10,
                y_length=10,
    
                axis_config=
                {
                "stroke_color": GREY_A,
                "include_numbers": True,
                }
            )
    
            #vzorec  x-2
            posunParabolyVzorecMinus2a = MathTex("{y = (x-2)^2+0}", font_size=50).to_edge(UL).set_color(YELLOW)
            posunParabolyVzorecMinus2a[0][5].set_color(RED)
            posunParabolyVzorecMinus2a[0][9].set_color(RED)
            #vzorec parabola y: (y-2)**2+0
            parabolaMinus2a = suradnicovaOs.plot(lambda y: (y-2)**2+0 )
            #body 1,2,3
            bodMinus2a= Dot(suradnicovaOs.coords_to_point(1, 1), color=YELLOW)
            #bodkociarkaMinus2a = suradnicovaOs.get_horizontal_line(suradnicovaOs.c2p(3,1))
            bodMinus2a2 = Dot(suradnicovaOs.coords_to_point(2, 0), color=YELLOW)
            bodkociarkaMinus2a2 = suradnicovaOs.get_vertical_line(suradnicovaOs.c2p(1,1))
            bodMinus2a3 = Dot(suradnicovaOs.coords_to_point(3, 1), color=YELLOW)
            bodkociarkaMinus2a3 = suradnicovaOs.get_vertical_line(suradnicovaOs.c2p(3,1))
            my_line: DashedLine = DashedLine(
                bodMinus2a.get_center(), bodMinus2a3.get_center(),stroke_width = 2
            )
            VsetkyBodyMinus123AA = VGroup(bodMinus2a,bodMinus2a2,bodMinus2a3, my_line, bodkociarkaMinus2a2, bodkociarkaMinus2a3)
    
            self.play(Write(suradnicovaOs), run_time=3)
            self.play(Create(posunParabolyVzorecMinus2a))
            self.play(Create(VsetkyBodyMinus123AA))   
            self.wait()
            self.play(FadeIn(parabolaMinus2a)) 
    

    【讨论】:

      猜你喜欢
      • 2022-11-03
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多