gpt4 book ai didi

python - 尽管具有相同的 anchor / handle (manim),为什么会生成两条不同的贝塞尔曲线?

转载 作者:行者123 更新时间:2023-12-01 07:49:12 25 4
gpt4 key购买 nike

我试图在同一场景中拥有两条相同的贝塞尔曲线,一条具有结束尖端,另一条具有起始尖端,但尽管具有相同的 anchor 和 handle ,但贝塞尔曲线的效果不同。我知道我可以将两个提示添加到同一条贝塞尔曲线中,但要将图形集成到我现有的代码中(以使其具有动画效果),我需要将它们分开。演示该问题的示例代码如下:

from manimlib.imports import *
class Testing3(Scene):
def construct(self):
coords_list=[0.818*UP+.9*UP, -2*RIGHT+((1/6-19/36)*np.sqrt(3))*UP+.9*UP]
node_list=[]
for i in range(2):
mobject = VMobject()
number = TexMobject(str(i+1))
circle = Circle(radius=0.4,color=WHITE)
mobject.add(number)
mobject.add(circle)
mobject.move_to(coords_list[i])
node_list.append(mobject)

arc1=TipableVMobject()
arc1.add_cubic_bezier_curve(
node_list[1].get_center(),
node_list[1].get_center()-3*RIGHT+2*UP,
node_list[1].get_center()-2*RIGHT+5.2*UP,
node_list[0].get_center()
)
arc1.pointwise_become_partial(
arc1,
0.4/arc1.get_arc_length(n_sample_points=20),
1-0.2/arc1.get_arc_length(n_sample_points=100)
)
arc1.add_tip(tip_length=0.2)

arc2=TipableVMobject()
arc2.add_cubic_bezier_curve(
node_list[1].get_center(),
node_list[1].get_center()-3*RIGHT+2*UP,
node_list[1].get_center()-2*RIGHT+5.2*UP,
node_list[0].get_center()
)
arc2.pointwise_become_partial(
arc2,
0.4/arc2.get_arc_length(n_sample_points=20),
1-0.2/arc2.get_arc_length(n_sample_points=100)
)
arc2.add_tip(tip_length=0.2,at_start=True)
self.add(*node_list,arc1,arc2)
self.wait()

我尝试制作贝塞尔曲线的副本,但它产生相同的结果。

最佳答案

目前我只能这样做:

class Testing3(Scene):
def construct(self):
coords_list=[0.818*UP+.9*UP, -2*RIGHT+((1/6-19/36)*np.sqrt(3))*UP+.9*UP]
node_list=[]
for i in range(2):
mobject = VMobject()
number = TexMobject(str(i+1))
circle = Circle(radius=0.4,color=WHITE)
mobject.add(number)
mobject.add(circle)
mobject.move_to(coords_list[i])
node_list.append(mobject)

arc1=TipableVMobject()
arc1.add_cubic_bezier_curve(
node_list[1].get_center(),
node_list[1].get_center()-3*RIGHT+2*UP,
node_list[1].get_center()-2*RIGHT+5.2*UP,
node_list[0].get_center()
)
arc1.pointwise_become_partial(
arc1,
0.4/arc1.get_arc_length(n_sample_points=20),
1-0.2/arc1.get_arc_length(n_sample_points=100)
)
arc1.add_tip(tip_length=0.2,
#at_start=True
)
arc1.add_tip(tip_length=0.2,
at_start=True
)
arc1.set_color(RED)

arc2=TipableVMobject()
arc2.add_cubic_bezier_curve(
node_list[1].get_center(),
node_list[1].get_center()-3*RIGHT+2*UP,
node_list[1].get_center()-2*RIGHT+5.2*UP,
node_list[0].get_center()
)
arc2.pointwise_become_partial(
arc2,
0.4/arc2.get_arc_length(n_sample_points=20),
1-0.2/arc2.get_arc_length(n_sample_points=100)
)
arc2.add_tip(tip_length=0.2,
#at_start=True
)
arc2.add_tip(tip_length=0.2,
at_start=True
)
arc2.set_color(BLUE)

arc1.remove(arc1[-2])
arc2.remove(arc2[-1])

self.add(*node_list,arc1)

self.wait()
self.add(arc2)
self.wait()

关于python - 尽管具有相同的 anchor / handle (manim),为什么会生成两条不同的贝塞尔曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56310087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com