【Manim】空间与变换笔记

所有常量都可以在constants.py中找到

屏幕空间

屏幕中心为原点(0,0,0),遵循右手坐标系,向右为x轴正方向,向上为y轴正方向,向前为z轴负方向,旋转时正方向为顺时针方向。

相关常量

名称 描述
FRAME_HEIGHT 屏幕高度,默认为8
FRAME_WIDTH 屏幕宽度,默认为ASPECT_RATIO * FRAME_HEIGHT
ASPECT_RATIO 屏幕宽高比,默认为16 / 9
FRAME_Y_RADIUS 屏幕高度的一半
FRAME_X_RADIUS 屏幕宽度的一半

向量(np.ndarray)

创建方式

np.array([x,y,z])

相关常量

名称 对应坐标 描述
RIGHT (1,0,0)
UP (0,1,0)
LEFT (-1,0,0)
DOWN (0,-1,0)
UR (1,1,0)
UL (-1,1,0)
DR (1,-1,0)
DL (-1,-1,0)
TOP (0,FRAME_Y_RADIUS,0) 屏幕最上方
BOTTOM (0,-FRAME_Y_RADIUS,0) 屏幕最下方
RIGHT_SIDE (FRAME_X_RADIUS,0,0) 屏幕最右方
LEFT_SIDE (-FRAME_X_RADIUS,0,0) 屏幕最左方
OUT (0,0,1)
IN (0,0,-1)

变换函数

以下都是Mobject对象的成员函数。

函数名 作用
shift 移动物体
move_to 移动物体到指定位置
scale 缩放物体
rotate 旋转物体
flip 翻转物体
stretch 拉伸物体
to_corner 移动物体到屏幕角落
to_edge 移动物体到屏幕边缘
align_to 对齐物体
next_to 排列物体
set_height 设置物体高度
set_width 设置物体宽度

可选参数

以下为部分举例,因为内容过多,不同函数参数也有不同,所有不方便记。但相关内容我也没在文档里找到,不过我发现在源码里可以找到。每个类可用的参数,都作为字典写在了类结构里,翻翻几个基类的源文件就知道了。

参数名 作用
aligned_edge 设置物体相对于目标点的对齐方式
coor_mask 限制物体在部分轴上不运动
about_edge 设置相对于边沿的运动
about_point 设置相对于点位的运动
buff 设置相对于默认变换结果的空间空隙
submobject_to_align 使用子物体进行对齐
index_of_submobject_to_align 对齐到目标的子物体

动画效果

需要配合scene.play使用,下方为举例。

self.play(
image.shift,
np.array([1,0,0])
)

【Manim】空间与变换笔记的更多相关文章

  1. 2019寒假训练营寒假作业(二) MOOC的网络空间安全概论笔记部分

    视频课程--MOOC的网络空间安全概论笔记 第一章 网络空间安全概述 2001年,网络空间概念被首次提出: 网络空间安全框架: 1.设备层安全: 可通过截获电磁辐射获取计算机信息.通过硬件木马(恶意电 ...

  2. Unity3D之空间转换学习笔记(一):场景物体变换

    该系列笔记基于Unity3D 5.x的版本学习,部分API使用和4.x不一致. 目前在Unity3D中,除了新的UGUI部分控件外,所有的物体(GameObject)都必带有Transform组件,而 ...

  3. Unity3D之空间转换学习笔记(二):基础数学

    这期笔记我们专注Unity提供的各种数学相关的类来学习. 时间Time API文档地址:http://docs.unity3d.com/ScriptReference/Time.html 时间加/减速 ...

  4. OpenCV 之 空间刚体变换

    刚体就是 "刚性物体",它在运动过程中,内部各质点间的相对位置不会改变,也即 每两个质点间的距离 保持不变 假设刚体内任意两个质点,坐标分别为 $(x_1, y_1, z_1)$ ...

  5. mysql空间类型使用笔记

    创建表,填充测试数据 create table geom1(id int not null auto_increment primary key,geo geometry); )); )); sele ...

  6. js内存空间详细图解-笔记

    原文参考http://mp.weixin.qq.com/s/NGqdjhoU3MR9LD0yH6tKIw 栈-先进后出堆-类比成书于书架(形象),只要知道Key就可以找到value 基础数据类型(Un ...

  7. 2019寒假训练营寒假作业(三) MOOC的网络空间安全概论笔记部分

    目录 第五章 网络攻防技术 5.1:网络信息收集技术--网络踩点 信息收集的必要性及内容 网络信息收集技术 网络踩点(Footprinting) 网络踩点常用手段 5.2:网络信息收集技术 --网络扫 ...

  8. Unity3D之空间转换学习笔记(三):3D数学

    3D数学基础 向量 向量可以看做具有方向和大小的一条线段. 比如:我们如果用点A减去点B,则可以得到一个向量,该向量的方向为点B面向点A的方向,而大小为两点的距离.这个方法在游戏开发中经常用到,比如我 ...

  9. jquery 上传空间uploadify使用笔记

    基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...

  10. 空间向量变换,以及OpenGL的glm库简单应用

    测试项目请查看GitHub库 GLBIproject2/GLBIProject2_2

随机推荐

  1. NFS服务搭建过程

    NFS服务 [1].nfs配置 作用: 解决数据一致性问题 NFS服务程序的配置文件为/etc/exports,需要严格按照共享目录的路径 允许访问的NFS客户端(共享权限参数)格式书写,定义要共享的 ...

  2. E. Photoshoot for Gorillas

    题意 给定一个整数 \(T\),代表共有\(T\)组测试用例,对于每组测试用例: 给定四个整数 \(n,m,k和w(1 \leq n,m \leq 2 * 10^5, 1 \leq w \leq n ...

  3. PDFSharp 1.5 更新

    PDFsharp 1.50 Preview Information - PDFsharp & MigraDoc PDFShapr 1.50 修复与改进 支持 Object Streams - ...

  4. UML之集合类型

    无论何时当我们要使用一个多值对象时,我们必须要清楚两个问题,一是这些值的顺序重要吗?二是允许重复值的存在吗?在编程语言中还会有其他的明确的信息,在UML中,只需明确这两个问题的答案即可确定对应的集合类 ...

  5. [转]快速搭建简单的LBS程序——地图服务

    很多时候,我们的程序需要提供需要搭建基于位置的服务(LBS),本文这里简单的介绍一下其涉及的一些基本知识. 墨卡托投影 地图本身是一个三维图像,但在电脑上展示时,往往需要将其转换为二维的平面图形,需要 ...

  6. [转]VC++中如何快速创建多层文件夹

    在创建目录时,原来的可用的方法是 _mkdir()或 BOOL CreateDirectory( LPCTSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurit ...

  7. LetsTalk_Android中引导用户加入白名单图-2

    =================================================================== ================================ ...

  8. WPF 背景阴影窗体

    <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200 ...

  9. C# Unit test TestInitialize\TestCleanp

    C# TestInitialize\TestCleanp ※※冰馨※※ 2020-12-15 09:19:37 75 收藏分类专栏: VS版权 VS专栏收录该内容197 篇文章1 订阅订阅专栏带有[C ...

  10. WPF 透明背景窗体

    <Window x:Class="WpfApplication8.MainWindow" xmlns="http://schemas.microsoft.com/w ...