当前位置:首页 > 后端开发 > 正文内容

manim边做边学--多面体

邻居的猫1个月前 (12-09)后端开发1194

Manim中,关于多面体,有一系列封装好的类能够直接运用。

运用它们,能够便利快速的构建正多面体:

  1. Polyhedron:经过极点和面的参数构建恣意多面体
  2. Tetrahedron:四面体
  3. Octahedron:八面体
  4. Dodecahedron:十二面体
  5. Icosahedron:二十面体

这些类使得在动画中直观地展现多面体成为可能,有助于了解多面体的几许形状和它们的特点。

特别是在数学和科学教育中,运用这些类制造的动画能够增强教育效果,使学生更简单了解笼统的几许概念。

1. 首要参数

TetrahedronOctahedronDodecahedronIcosahedron都是正多面体,

所以参数比较简单,只要一个edge_length,表明多面体的边长。

Polyhedron作为不定面数的多面体,参数略微多一些:

参数称号 类型 阐明
vertex_coords [[float]] / np.ndarray 界说多面体一切极点的坐标
faces_list [[int]] 界说多面体的各个面
faces_config dict 为多面体的面供给额定的装备信息
graph_config dict 装备多面体的图结构

参数faces_list中界说的是面的极点索引(也便是参数vertex_coords中极点的索引),能够确认多面体的各个面的形状和方位。

参数faces_config为多面体的面设置色彩、透明度、原料等特点,然后增强动画的视觉效果。

参数graph_config用于调整多面体图的连通性、边的权重等特点,这在某些特定的数学动画或物理模仿中能够发挥作用。

2. 首要办法

这些多面体的类没有什么自己特有的办法,通用的设置款式和动画(比方平移,旋转和缩放等)的办法都支撑。

3. 运用示例

下面经过几个示例来演示各个多面体在动画中的运用。

3.1. 自界说多面体

此示例展现了怎么运用Polyhedron类创立自界说多面体。

经过界说极点坐标面列表,能够创立恣意形状的多面体。

# 界说极点坐标
vertex_coords = [
    [1, 1, -1],
    [1, -1, 1],
    [-1, -1, 1],
    [-1, 1, -1],
    [0, 0, 2],
]

# 界说面(由极点索引组成)
faces_list = [
    [0, 1, 2],
    [0, 2, 3],
    [0, 3, 1],
    [1, 2, 3, 4],
]

# 创立Polyhedron目标
p = Polyhedron(vertex_coords, faces_list)
p.faces[0].set_color(GREEN)
p.faces[1].set_color(YELLOW)
p.faces[2].set_color(RED)
p.faces[3].set_color(BLUE)

self.play(Create(p))

3.2. 十二面体

此示例展现了Dodecahedron类的运用,该类是Polyhedron的一个特例,用于创立规范的十二面体。

无需手动界说极点和面,只需实例化目标并设置色彩等特点。

# 创立十二面体目标
d = Dodecahedron()
d.faces.set_color(GREEN)

self.play(Create(d))
self.play(d.animate.scale(0.5))

3.3. 二十面体

此示例展现了Icosahedron类的运用,该类用于创立规范的二十面体。

经过设置fill_opacity特点,能够操控多面体的填充透明度,

此外,经过旋转多面体,能够展现其不同的视角。

# 创立二十面体目标
i = Icosahedron()
i.faces.set_color(RED)
i.faces.set_opacity(0.6)
self.play(Create(i))

# 旋转多面体以展现其形状
self.play(i.animate.rotate(PI / 4, axis=OUT))

3.4. 八面体与四面体

此示例一起展现了OctahedronTetrahedron类的运用,这两个类别离用于创立规范的八面体和四面体。

经过将它们移动到场景的不同方位,能够明晰地展现这两个多面体的形状和巨细差异。

# 创立八面体目标
o = Octahedron()
o.faces.set_color(YELLOW)

# 创立四面体目标
t = Tetrahedron()
t.faces.set_color(PURPLE)

self.play(Create(o), Create(t))
self.play(
    o.animate.move_to(LEFT),
    t.animate.move_to(RIGHT),
)

4. 附件

文中的代码仅仅要害部分的截取,完好的代码同享在网盘中(polyhedron.py),

下载地址: 完好代码 (拜访暗码: 6872)

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=159

标签: databookmanim
分享给朋友:

“manim边做边学--多面体” 的相关文章

处理Windows中文用户名导致的Dart AOT编译失利问题

处理Windows中文用户名导致的Dart AOT编译失利问题

Windows中文用户名导致的Dart AOT编译失利   我的微软账户一向运用中文用户名,Windows会把这个用户名作为用户文件夹的称号,并且很难修正. 这就导致但凡放在这个途径下的文件都得有一个带中文的绝对途径. Dart 编译时或许由于这儿的中文字符而犯错.   问题呈现时的操作体系及D...

c语言结构体,c语言结构体定义和使用

在C语言中,结构体(`struct`)是一种用户自定义的数据类型,允许你将不同类型的数据组合在一起,作为一个单一的数据类型来处理。这种组合数据类型在处理复杂的数据结构时非常有用,比如表示一个点、一个时间、一个员工信息等。 基本语法定义一个结构体的一般形式如下:```cstruct 结构体名称 {...

java图片压缩,Java 图片压缩概述

java图片压缩,Java 图片压缩概述

在Java中,你可以使用Java图像处理库(如Java ImageIO)来压缩图片。以下是一个简单的例子,展示了如何使用Java来压缩图片:```javaimport javax.imageio.ImageIO;import java.awt.image.BufferedImage;import j...

python代码大全,python免费版

1. Python 100例 菜鸟教程 提供了100个Python练习实例,涵盖了Python的基础语法、数据结构、函数、类、模块等知识点。每个实例都有代码和输出结果,适合Python初学者和进阶者学习和练习。 2. python代码库 云代码 收录常用代码片段,方便程序...

rust腐蚀多少钱,了解其经济影响

目前《Rust(腐蚀)》在Steam国区的售价为136元人民币。如果你不急于购买,可以留意Steam上的促销活动,有时会有折扣,最低曾达到25元人民币Rust腐蚀的代价:了解其经济影响在工业领域,Rust(铁锈)是一种常见的腐蚀现象,它不仅影响设备的性能和寿命,还会带来显著的经济损失。本文将探讨Ru...

java开源项目,助力开发者高效编程的利器

java开源项目,助力开发者高效编程的利器

1. JavaGuide 提供了丰富的Java开源项目资源,包括框架、工具和教程等,灵感来源于 awesomejava 项目。你可以访问以下链接了解 2. CSDN 上有多篇文章介绍了基于Spring Boot的优质Java开源项目,涵盖了电商、微服务、支付、秒杀、博客、管理后台等多个...