1.CubicBezier[三次贝塞尔曲线]
三次贝塞尔曲线https://blog.csdn.net/qq_45449625/article/details/140581971
CubicBezier(start_anchor, start_handle, end_handle, end_anchor,**kwargs)
CubicBezier
是一个用于表示三次贝塞尔曲线的对象,通常出现在计算机图形学和动画处理中。三次贝塞尔曲线由四个点定义:
- start_anchor:起始锚点,表示曲线的起点。
- start_handle:起始控制点,影响曲线起始段的形状。
- end_handle:结束控制点,影响曲线结束段的形状。
- 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 中用于创建一个点的类。让我们逐个参数进行解释:
-
point=array([0., 0., 0.]):
- 这个参数指定点在三维空间中的位置。默认情况下,它被设置为原点
(0, 0, 0)
。这个数组表示一个三维坐标,通常用于表示平面上的点或空间中的点。
- 这个参数指定点在三维空间中的位置。默认情况下,它被设置为原点
-
radius=0.08:
- 这个参数指定点的半径,也就是点的大小。默认值为
0.08
,表示生成的点的直径会是0.16
(即,半径的两倍),您可以根据需要调整这个值来改变点的大小。
- 这个参数指定点的半径,也就是点的大小。默认值为
-
stroke_width=0:
- 这个参数设置点边缘的宽度。在这里,它被设置为
0
,意味着这个点没有边框或轮廓。如果将其设置为大于0
的值,点会显示边框。
- 这个参数设置点边缘的宽度。在这里,它被设置为
-
fill_opacity=1.0:
- 这个参数指定点的填充透明度。
1.0
表示完全不透明,值在0
到1
之间,通常用于调整可见度。0
表示完全透明。因为这个参数通常用于控制展示效果,所以在这里1.0
表示这个点是完全可见的。
- 这个参数指定点的填充透明度。
-
color=ManimColor('#FFFFFF'):
- 这个参数指定点的颜色,这里设置为白色(
#FFFFFF
是白色的十六进制颜色值)。ManimColor
是 Manim 中用于指定颜色的类,通常可以用简单的字符串如'RED'
、'BLUE'
等表示常用颜色。
- 这个参数指定点的颜色,这里设置为白色(
-
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)
运行结果: