Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVGMobject不';无法正确显示图像_Svg_Manim - Fatal编程技术网

SVGMobject不';无法正确显示图像

SVGMobject不';无法正确显示图像,svg,manim,Svg,Manim,我正在尝试使用SVG文件创建一个数字生物。但是当我运行动画,生物出现时,有一些缺失的部分,我不知道为什么。即使我只是尝试在SVGMobject上加载SVG文件,它也不能正常工作 Creature()是一个子类,它继承了NumberCreature类的功能,刚刚重命名为Alex() 下面是python代码: class NumberCreature(Scene): def construct(self): creature = Creature() self.add(

我正在尝试使用SVG文件创建一个数字生物。但是当我运行动画,生物出现时,有一些缺失的部分,我不知道为什么。即使我只是尝试在SVGMobject上加载SVG文件,它也不能正常工作

Creature()是一个子类,它继承了NumberCreature类的功能,刚刚重命名为Alex()

下面是python代码:

class NumberCreature(Scene):
def construct(self):       
    creature = Creature()
    self.add(creature)
    self.wait()
class NumberCreature(Scene):
def construct(self):       
creature = SVGMobject('/home/usr/manim/assets/svg_images/NumberCreature_plain.svg')    
    self.add(creature)
    self.wait()
这里是原始SVG代码: 以下是预期结果:

当我运行python代码时,这是真正的结果:

我还尝试运行以下python代码:

class NumberCreature(Scene):
def construct(self):       
    creature = Creature()
    self.add(creature)
    self.wait()
class NumberCreature(Scene):
def construct(self):       
creature = SVGMobject('/home/usr/manim/assets/svg_images/NumberCreature_plain.svg')    
    self.add(creature)
    self.wait()

正如您所看到的,图像中有一些部分丢失了,即使我尝试使用Bioture[index].set_color(original_hex_color)为所有内容正确上色,结果也总是与原始内容不同


请帮帮我,我不知道到底发生了什么,我还没有在manim上找到任何东西。

如果你打算在manim中使用SVG,建议你学习一些基本的SVG课程,因为你肯定会经常遇到这种问题,你可以在youtube上找到很多,我建议你从开始

为了解决您的问题,为了分析发生了什么,我创建了一个脚本:

bioture=SVGMobject('bioture.svg')。设置高度(帧高度-1)
索引=VGroup()
颜色=它。循环([黄色、绿色、紫色、粉色、灰色、青色])
对于射程内的i(len(生物)):
text=text(f“{i}”,颜色=白色,笔划=0,font=“Arial”)。设置高度(0.4)
颜色=下一个(颜色)
生物[i]。设置颜色(颜色)
生物[i]。设置_笔划(颜色,2)
文本。下一个(生物[i],右,buff=0)
index.add(文本)

该脚本向我显示了svg拥有的部分数量,我将索引放置在每个部分的右侧,如图所示,svg中有8个子图形(从0开始),我们可以直观地看出第0层和第7层是相同的,因此如果我们隐藏第7层,则会给出:

类号生物(场景):
def构造(自):
生物=SVGMobject('bioture.svg')。设置高度(帧高度-1)
索引=VGroup()
颜色=它。循环([黄色、绿色、紫色、粉色、灰色、青色])
对于射程内的i(len(生物)):
text=text(f“{i}”,颜色=白色,笔划=0,font=“Arial”)。设置高度(0.4)
颜色=下一个(颜色)
生物[i]。设置颜色(颜色)
生物[i]。设置_笔划(颜色,2)
文本。下一个(生物[i],右,buff=0)
index.add(文本)
生物。设置_笔划(蓝色,2)
生物[-1]。褪色(1)
自我添加(生物,索引)
self.wait()

知道了这一点,就不难直觉地知道发生了什么,你必须在设计上下功夫

重要:默认情况下,manim从svg中删除样式和颜色,因此您必须手动配置它们,如下所示:

类别编号生物(场景):
def构造(自):
生物=SVGMobject('bioture.svg')。设置高度(帧高度-1)
生物[0]。设置样式(填充不透明度=1,笔划宽度=0,笔划不透明度=0,填充颜色=红色A)
生物[7]。设置样式(填充不透明度=0,笔划宽度=30,笔划不透明度=1,笔划颜色=红色)
生物[3]。设定划水(红色,20)
黑色矩形=矩形(
宽度=获取标准(生物[0]。获取角(UL)-生物[0]。获取角(UR)),
高度=生物[1]。获取高度(),
填充不透明度=1,
笔划不透明度=0,
填充颜色=黑色,
)
黑色矩形。紧挨着(生物[0],向上,增益=0.15)
自我添加(生物,黑色矩形)
self.wait()

如果您打算在manim中使用SVG,建议您学习一些基本的SVG课程,因为您肯定会经常遇到此类问题,您可以在youtube上找到很多,我建议您从开始

为了解决您的问题,为了分析发生了什么,我创建了一个脚本:

bioture=SVGMobject('bioture.svg')。设置高度(帧高度-1)
索引=VGroup()
颜色=它。循环([黄色、绿色、紫色、粉色、灰色、青色])
对于射程内的i(len(生物)):
text=text(f“{i}”,颜色=白色,笔划=0,font=“Arial”)。设置高度(0.4)
颜色=下一个(颜色)
生物[i]。设置颜色(颜色)
生物[i]。设置_笔划(颜色,2)
文本。下一个(生物[i],右,buff=0)
index.add(文本)

该脚本向我显示了svg拥有的部分数量,我将索引放置在每个部分的右侧,如图所示,svg中有8个子图形(从0开始),我们可以直观地看出第0层和第7层是相同的,因此如果我们隐藏第7层,则会给出:

类号生物(场景):
def构造(自):
生物=SVGMobject('bioture.svg')。设置高度(帧高度-1)
索引=VGroup()
颜色=它。循环([黄色、绿色、紫色、粉色、灰色、青色])
对于射程内的i(len(生物)):
text=text(f“{i}”,颜色=白色,笔划=0,font=“Arial”)。设置高度(0.4)
颜色=下一个(颜色)
生物[i]。设置颜色(颜色)
生物[i]。设置_笔划(颜色,2)
文本。下一个(生物[i],右,buff=0)
index.add(文本)
生物。设置_笔划(蓝色,2)
生物[-1]。褪色(1)
自我添加(生物,索引)
self.wait()

知道了这一点,就不难直觉地知道发生了什么,你必须在设计上下功夫

重要:默认情况下,manim从svg中删除样式和颜色,因此您必须手动配置它们,如下所示:

类别编号生物(场景):
def构造(自):
生物=SVGMobject('bioture.svg')。设置高度(帧高度-1)
生物[0]。设置样式(填充不透明度=1,笔划宽度=0,笔划