【Manim】空间与变换笔记
【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】空间与变换笔记的更多相关文章
- 2019寒假训练营寒假作业(二) MOOC的网络空间安全概论笔记部分
视频课程--MOOC的网络空间安全概论笔记 第一章 网络空间安全概述 2001年,网络空间概念被首次提出: 网络空间安全框架: 1.设备层安全: 可通过截获电磁辐射获取计算机信息.通过硬件木马(恶意电 ...
- Unity3D之空间转换学习笔记(一):场景物体变换
该系列笔记基于Unity3D 5.x的版本学习,部分API使用和4.x不一致. 目前在Unity3D中,除了新的UGUI部分控件外,所有的物体(GameObject)都必带有Transform组件,而 ...
- Unity3D之空间转换学习笔记(二):基础数学
这期笔记我们专注Unity提供的各种数学相关的类来学习. 时间Time API文档地址:http://docs.unity3d.com/ScriptReference/Time.html 时间加/减速 ...
- OpenCV 之 空间刚体变换
刚体就是 "刚性物体",它在运动过程中,内部各质点间的相对位置不会改变,也即 每两个质点间的距离 保持不变 假设刚体内任意两个质点,坐标分别为 $(x_1, y_1, z_1)$ ...
- mysql空间类型使用笔记
创建表,填充测试数据 create table geom1(id int not null auto_increment primary key,geo geometry); )); )); sele ...
- js内存空间详细图解-笔记
原文参考http://mp.weixin.qq.com/s/NGqdjhoU3MR9LD0yH6tKIw 栈-先进后出堆-类比成书于书架(形象),只要知道Key就可以找到value 基础数据类型(Un ...
- 2019寒假训练营寒假作业(三) MOOC的网络空间安全概论笔记部分
目录 第五章 网络攻防技术 5.1:网络信息收集技术--网络踩点 信息收集的必要性及内容 网络信息收集技术 网络踩点(Footprinting) 网络踩点常用手段 5.2:网络信息收集技术 --网络扫 ...
- Unity3D之空间转换学习笔记(三):3D数学
3D数学基础 向量 向量可以看做具有方向和大小的一条线段. 比如:我们如果用点A减去点B,则可以得到一个向量,该向量的方向为点B面向点A的方向,而大小为两点的距离.这个方法在游戏开发中经常用到,比如我 ...
- jquery 上传空间uploadify使用笔记
基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...
- 空间向量变换,以及OpenGL的glm库简单应用
测试项目请查看GitHub库 GLBIproject2/GLBIProject2_2
随机推荐
- Datadog发布云成本现状报告:83%的容器支出被闲置资源浪费
原文链接:https://www.datadoghq.com/state-of-cloud-costs/ 编译:CloudPilot AI 尽管灵活多样的云服务为云成本优化提供了诸多机会,但企业在提升 ...
- 12C++循环结构-for循环(2)——教学
一.循环变量为字符型 (第32课 26个兄弟姐妹)参考视频1 试编一程序,按字典顺序输出26个字母. 流程图: 思考:先顺序输出26个小写英文字母,再逆序输出26个大写英文字母. 循环可以是递增型循环 ...
- 云数据备份 | CDN 日志备份最佳实践
前言 内容分发网络(Content Delivery Network,CDN),是在现有 Internet 中增加的一层新的网络架构,可以有效降低用户访问延迟,提升可用性. CDN 按照小时粒度对 ...
- [AI回答]Java中Long和long的区别,为什么在Springboot项目中一般使用Long
Long 和 long 的区别 在Java中,Long 和 long 是两个不同的概念,它们分别代表不同的数据类型: long: 这是一个 基本数据类型 (primitive type). 它用于存储 ...
- shell判断字符串结尾
下面围绕"判断字符串是否以.txt结尾"展开.转变一下也同样适用于"判断字符串是否以.txt开头". 通用的方法 # 方法一.使用grep命令 #!/bin/s ...
- Qt/C++音视频开发52-采集本地屏幕桌面的终极设计
一.前言 最开始设计的时候,只考虑了一个屏幕的情况,这种当然是最理想的情况,实际上双屏或者多屏的用户也不在少数,比如我这两个屏幕,屏幕1是1080P,屏幕2是2K分辨率,打印两个屏幕的区域是 QRec ...
- 张正友的相机标定论文Flexible camera calibration by viewing a plane from unknown orientations的翻译
张正友的相机标定论文Flexible camera calibration by viewing a plane from unknown orientations的翻译: 翻译的pdf版本为:htt ...
- [转]export ‘default‘ (imported as ‘Vue‘) was not found in ‘vue
问题原因:我是安装了最新的vuecli,版本大概是4.5.4,我最开始安装vuecli没有指定版本下面是我出问题的代码,其实就是自己不会用vuecli4. npm install -g @vue/cl ...
- 使用MathNet.Numerics库构造矩阵并初始化时,编译器报错“this方法没有任何重载采用"1"个参数”
最近在使用MathNet.Numerics库作一些数据处理工作,构造一个矩阵并初始化时,编译器报错"this方法没有任何重载采用"1"个参数". 问题分析: 构 ...
- [转]C# PowerPoint操作的基本用法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using OFFICECO ...