
在Manim中如何修改直线的长短呢,大家都知道,在Manim中,默认的直线其实是过两个点的一条线段,在做课件的过程中,我们需要一条直线,或者是直线样式,这就需要我们把一条做好的线段修改为直线。该如何做的,来看下面的教程。先来看代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| from manim import *
class BasicCoordinateSystemOne(Scene): def construct(self): # 创建坐标系 axes = Axes( x_range=[-4, 4, 1], # x轴范围:从-5到5,刻度间隔1 y_range=[-3, 3, 1], # y轴范围:从-4到4,刻度间隔1 axis_config={"color": BLUE}, x_length=8, y_length=6, ) line_one = Line(np.array([-2,0,0]),np.array([0,2,0])) # 添加坐标轴标签 x_label = axes.get_x_axis_label("x") y_label = axes.get_y_axis_label("y") # 动画演示 self.play(Create(axes), Write(x_label), Write(y_label)) self.wait(0.5)
|
在这里,我们构造了一个漂亮的坐标系,并保证了坐标系的长度是均衡的,来看演示代码
然后我们通过Line方式添加一条直线,然后生成这条直线,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| from manim import *
class BasicCoordinateSystemTwo(Scene): def construct(self): # 创建坐标系 axes = Axes( x_range=[-4, 4, 1], # x轴范围:从-5到5,刻度间隔1 y_range=[-3, 3, 1], # y轴范围:从-4到4,刻度间隔1 axis_config={"color": BLUE}, x_length=8, y_length=6, ) # 构造一条直线 line_one = Line(np.array([-2,0,0]),np.array([0,2,0])) # 添加坐标轴标签 x_label = axes.get_x_axis_label("x") y_label = axes.get_y_axis_label("y") # 动画演示 self.play(Create(axes), Write(x_label), Write(y_label)) self.wait(2) self.play(Create(line_one)) self.wait(2)
|
看下面的演示,不难发现,生成的直线,其实就是一条线段
这个时候,我们就需要把这条线段修改为一条直线,该如何做呢,我们使用 scale 来调整线段的长度,让他看起来像一条直线。来看代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| from manim import *
class BasicCoordinateSystemTwo(Scene): def construct(self): # 创建坐标系 axes = Axes( x_range=[-4, 4, 1], # x轴范围:从-5到5,刻度间隔1 y_range=[-3, 3, 1], # y轴范围:从-4到4,刻度间隔1 axis_config={"color": BLUE}, x_length=8, y_length=6, ) # 构造一条直线 line_one = Line(np.array([-2,0,0]),np.array([0,2,0])) # 调整直线的长短 line_one.scale(2) # 添加坐标轴标签 x_label = axes.get_x_axis_label("x") y_label = axes.get_y_axis_label("y") # 动画演示 self.play(Create(axes), Write(x_label), Write(y_label)) self.wait(2) self.play(Create(line_one)) self.wait(2)
|
我们在直线的下方调整了直线的一个属性代码,来看演示的效果
在Manim中,scale 是用于调整对象尺寸的缩放变换方法。它可以让对象按比例放大或缩小,是创建动画时非常常用的函数。属性值为整数表示变大,属性值为小数表示变小,属性值为1保持不变。
属性值含义:
scale(2) = 变为原来的2倍
scale(0.5) = 变为原来的一半
scale(1) = 保持不变
好了,今天的学习就到这里,这两天忙活网站的一些小细节,没有学习Manim,感觉有点儿手生了,配图修改为一个漂亮的壁纸,希望大家能够喜欢,谢谢大家。