You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Manim中绘制两个圆形之间的弯曲箭头

Manim社区版两圆形间绘制弯曲箭头解决方案

你的报错原因是CurvedArrow继承自ArcBetweenPoints,构造函数仅支持传入坐标点作为起止参数,没有像Line一样做Mobject适配,不能直接传入圆形对象。

所有Manim的可视化对象(Mobject)都内置了坐标获取方法:

  • 调用get_center()可获取对象中心点坐标
  • 调用get_right()/get_left()/get_top()/get_bottom()可直接获取对应方向的边缘点坐标
  • 也可以调用get_edge_center(方向向量)获取指定朝向的边缘坐标

修正后可正常运行的代码如下:

from manim import *

class Curve1(Scene):
    def construct(self):
        c1 = Circle(radius=0.2, color=BLUE)
        c2 = Circle(radius=0.2, color=BLUE)
        group = Group(c1,c2).arrange(buff=1)
        self.add(group)
        # 取圆形边缘点作为起止点,避免箭头穿入圆形内部
        curve = CurvedArrow(
            start_point=c1.get_right(),
            end_point=c2.get_left(),
            angle=TAU/8  # 调整弯曲弧度:正值向上弯,负值向下弯,默认值为TAU/4
        )
        self.add(curve)

你也可以根据需求修改angle、radius等参数,调整箭头的弯曲程度和样式。

内容的提问来源于stack exchange,提问作者user100464

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:15:08