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

1.椭圆【Ellipse】

        椭圆是平面上的一种二次曲线,可以看作是一个特殊的圆,形状更为扁平。数学上,椭圆通常定义为平面上到两个定点(称为焦点)的距离之和是一个常数的点的集合。

定义

        椭圆的标准方程为:\frac{(x-h)^{2}}{a^{2}}+\frac{(y-k)^{2}}{b^{2}},其中,(ℎ,𝑘)是椭圆的中心,𝑎是椭圆的半长轴(长轴的一半),𝑏是椭圆的半短轴(短轴的一半)。当𝑎=b时,椭圆变为圆。椭圆的焦点距离可以用𝑐表示,且满足关系c^{2}=a^{2}-b^{2}

应用

椭圆不仅在纯数学中有重要的地位,还在物理学、天文学、工程学等多个领域中有广泛应用。例如,在描述行星围绕太阳的轨道时,开普勒发现这些轨道是椭圆形的,这一发现为经典天文学奠定了基础。椭圆还在信号处理、光学和建筑设计等领域中得到了应用。

我们利用manim进行动画的时候,用到的使用代码段如下:

Ellipse(width=2, height=1, **kwargs)[source]

 参数:

  • width (float) - 椭圆的水平宽度。

  • height (float) - 椭圆的垂直高度。

  • kwargs – 要传递给 的其他参数。

例子:

from manim import *
class EllipseExample(Scene):
    def construct(self):
        ellipse_1 = Ellipse(width=1, height=4.0, color=BLUE_B,fill_opacity=0.5)
        ellipse_2 = Ellipse(width=4.0, height=1.0, color=BLUE_D)
        ellipse_3 = Ellipse(width=1, height=4.0, color=BLUE_B,fill_opacity=1)
        ellipse_group = Group(ellipse_1,ellipse_2,ellipse_3).arrange(buff=2)
        self.add(ellipse_group)

运行结果:

 2.标签点【LabeledDot

“标签点”(LabeledDot)通常是在图形绘制和数据可视化中使用的术语,用于表示带有标签的点。这种点常用于图表、散点图或其他可视化形式中,以便清楚地区分和识别不同的数据点。

概念
  • 标签:每个点都有一个相关的标签,通常是文本,用于描述该点的特点或标识。例如,标签可以是类名、编号、或其他相关信息。
  • :在图形中,点是位置的表示,可以是二维或三维空间中的坐标位置。
用途
  • 数据可视化:在数据分析和可视化中,使用带标签的点可以帮助用户更好地理解数据的分布和特征。
  • 分类:在机器学习和统计分析中,标签用于标识数据点的类别,例如监督学习中的训练数据集。
  • 图表创建:在创建图表时,标签点可以提供额外的信息,帮助解释数据。

使用代码:

LabeledDot(label, radius=None, **kwargs)[source]

LabeledDot 通常是一个类或函数的构造函数,用于创建带有标签的点。虽然你提供的代码片段没有显示具体的库或框架,但我们可以推测其基本含义。

参数解析
  1. label:

    • 这是一个必需的参数,表示点的标签或名称。它通常是一个字符串,用于描述该点的内容或特征。在可视化中,标签用于让用户识别每个点的含义。
  2. radius:

    • 这是一个可选参数(默认为 None),可能用于定义点的半径或大小。如果在一个图形或可视化中,radius 可以控制表示该点的图形元素(如圆形)的大小。当未提供时,可能会使用默认值。
  3. kwargs:

    • 这个参数代表关键字参数,就像 Python 中的 **kwargs 语法。它可以接收其他额外的参数,这些参数可以用于定义点的其他特性,比如颜色、透明度、边框等。这使得 LabeledDot 非常灵活,因为用户可以根据需求传入各种属性。

例子:

class SeveralLabeledDots(Scene):
    def construct(self):
        el = Ellipse(width=4, height=1.5, color=BLUE_B,fill_opacity=0.5)
        self.add(el)
        dot1 = LabeledDot(Tex("42", color=RED))
        dot2 = LabeledDot(MathTex("a", color=GREEN))
        dot3 = LabeledDot(Text("ii", color=BLUE))
        dot4 = LabeledDot("3")
        dot1.next_to(el, UL)
        dot2.next_to(el, UR)
        dot3.next_to(el, DL)
        dot4.next_to(el, DR)
        self.add(dot1, dot2, dot3, dot4)

运行结果:

 

  • 29
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yasen.M

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

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

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

打赏作者

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

抵扣说明:

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

余额充值