【Manim动画教程】——基本几何 【线条-上】

1.CubicBezier[三次贝塞尔曲线]

三次贝塞尔曲线icon-default.png?t=N7T8https://blog.csdn.net/qq_45449625/article/details/140581971

CubicBezier(start_anchor, start_handle, end_handle, end_anchor,**kwargs)

 CubicBezier 是一个用于表示三次贝塞尔曲线的对象,通常出现在计算机图形学和动画处理中。三次贝塞尔曲线由四个点定义:

  1. start_anchor:起始锚点,表示曲线的起点。
  2. start_handle:起始控制点,影响曲线起始段的形状。
  3. end_handle:结束控制点,影响曲线结束段的形状。
  4. end_anchor:结束锚点,表示曲线的终点。

这四个点是通过控制点来定义曲线的弯曲程度和方向的。在这个构造函数中,**kwargs 是一个可选参数,可以传递额外的关键字参数。这些参数的具体用途通常取决于实现的上下文,例如可以用于设置曲线的颜色、宽度等属性。

一下是一个实例代码:

CubicBezier(start_anchor=[0,0,0], start_handle=[1, 2,0], end_handle=[2, 2,0], 
                           end_anchor=[3, 0,0],color=RED_C)

在这个例子中:

  • (0, 0) 是曲线的起点。
  • (1, 2) 是影响曲线起始段形状的控制点。
  • (2, 2) 是影响曲线结束段形状的控制点。
  • (3, 0) 是曲线的终点。

具体的实现和功能可能会依赖于你所使用的图形库或者框架。这种类通常会包含方法以计算曲线在给定比例(t值)下的点位置,或者绘制曲线等功能。

实例:

from manim import *
class BezierSplineExample(Scene):
    def construct(self):
        p1 = np.array([-3, 1, 0])
        p1b = p1 + [1, 0, 0]
        d1 = Dot(point=p1).set_color(BLUE)
        l1 = Line(p1, p1b)
        p2 = np.array([3, -1, 0])
        p2b = p2 - [1, 0, 0]
        d2 = Dot(point=p2).set_color(RED)
        l2 = Line(p2, p2b)
        bezier = CubicBezier(p1b, p1b + 3 * RIGHT, p2b - 3 * RIGHT, p2b)
        self.add(l1, d1, l2, d2, bezier)
        beline=CubicBezier(start_anchor=[0,0,0], start_handle=[1,-1,0], end_handle=[2, -2,0], 
                           end_anchor=[3, -2,0],color=RED_C).shift(2*UP)
        a0=Dot(point=[0,0,0]).shift(2*UP)
        
        a3=Dot(point=[3, -2,0]).shift(2*UP)
        self.add(a0,a3,beline)

运行结果:

 2.弯曲箭头[CurvedArrow]

应用实例:

CurvedArrow(start_point, end_point, **kwargs)
#star_point(是弯曲箭头的起点
#end_point(是弯曲箭头的结束点
#**kwargs(是别的参数,颜色,曲线粗细等。

实例代码:

from manim import *
class CurvedArrow01(Scene):
    def construct(self):
        a1=CurvedArrow(start_point=[1,0,0],end_point=[4,1,0],color=RED_B)
        self.add(a1)

 运行结果:

3.弯曲双箭头[CurvedDoubleArrow]

应用实例。

CurvedDoubleArrow(start_point, end_point, **kwargs)
#参数分别是,第一个箭头的开始点,第二个箭头的结束点,和别的参数。

实例:

from manim import *
class CurvedDoubleArrow01(Scene):
    def construct(self):
        db=CurvedDoubleArrow(start_point=[1,0,0],end_point=[4,1,0],color=RED_B)
        
        self.add(NumberPlane(),db)

运行结果:

 4.点【Dot】

使用代码:

Dot(point=array([0., 0., 0.]), radius=0.08, stroke_width=0,
 fill_opacity=1.0, color=ManimColor('#FFFFFF'), **kwargs)[source]

在这个代码片段中,Dot 是 Manim 中用于创建一个点的类。让我们逐个参数进行解释:

  1. point=array([0., 0., 0.])

    • 这个参数指定点在三维空间中的位置。默认情况下,它被设置为原点 (0, 0, 0)。这个数组表示一个三维坐标,通常用于表示平面上的点或空间中的点。
  2. radius=0.08

    • 这个参数指定点的半径,也就是点的大小。默认值为 0.08,表示生成的点的直径会是 0.16(即,半径的两倍),您可以根据需要调整这个值来改变点的大小。
  3. stroke_width=0

    • 这个参数设置点边缘的宽度。在这里,它被设置为 0,意味着这个点没有边框或轮廓。如果将其设置为大于 0 的值,点会显示边框。
  4. fill_opacity=1.0

    • 这个参数指定点的填充透明度。1.0 表示完全不透明,值在 0 到 1 之间,通常用于调整可见度。0 表示完全透明。因为这个参数通常用于控制展示效果,所以在这里 1.0 表示这个点是完全可见的。
  5. color=ManimColor('#FFFFFF')

    • 这个参数指定点的颜色,这里设置为白色(#FFFFFF 是白色的十六进制颜色值)。ManimColor 是 Manim 中用于指定颜色的类,通常可以用简单的字符串如 'RED''BLUE' 等表示常用颜色。
  6. kwargs

    • **kwargs 允许传递其他额外的关键字参数,这样可以扩展和自定义 Dot 类的其他属性或功能。例如,您可以添加新的属性来改变该点的样式或行为。

总结起来,这个 Dot 类的实例化代码会在三维空间的原点 (0, 0, 0) 创建一个半径为 0.08、无边框、完全不透明、白色的点。通过修改这些参数,你可以定制点的外观。

实例代码:

class DotExample(Scene):
    def construct(self):
        dot1 = Dot(point=LEFT, radius=0.08)
        dot2 = Dot(point=ORIGIN)
        dot3 = Dot(point=RIGHT)
        dot4=Dot(point=[0,-2, 0], radius=0.5, stroke_width=3, fill_opacity=0.5,
            color=RED_E)
        dot5=Dot(point=[0,2, 0], radius=1, stroke_width=0.2, fill_opacity=1,
            color=YELLOW_C)

        self.add(dot1,dot2,dot3,dot4,dot5)

运行结果:

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yasen.M

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值