首页 > 其他分享 >【笔记-Manim】空间与变换

【笔记-Manim】空间与变换

时间:2024-01-14 13:34:12浏览次数:23  
标签:变换 FRAME 笔记 RADIUS 对齐 屏幕 物体 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])
)

标签:变换,FRAME,笔记,RADIUS,对齐,屏幕,物体,Manim
From: https://www.cnblogs.com/BDFFZI/p/17963607

相关文章

  • InternLM大模型笔记3
    整个过程相比于上次来说比较顺利,除了前期pip安装缺少有关库导致报错报错,其他都没有什么问题配置NLTK过程遇到加载很慢,最后发现可能是算力太少导致服务器响应太慢导致,经过重装之后,解决了问题最后配置成功......
  • 【软件开发学习笔记】Git版本控制
    【软件开发学习笔记】Git版本控制Git概念存储方式Git是分布式存储,每一个clone下来的仓库都可以看成独立的个体,只是Git有提供同步功能,因此Git支持离线使用,因为本质上本地和云端是两个仓库。仓库构成提交(commit)提交是存储文件的最基本元素,记录了每次对文件的修改信息,同时也是......
  • 【软件开发学习笔记】设计模式
    【软件开发学习笔记】设计模式设计模式设计模式是一种针对面向对象语言的软件设计方法,是对类设计的约束和指导。设计模式由“原则”和“方法”两部分组成,一个设计良好的项目结构应能完美符合“原则”中的要求,而为了实现完美往往需要按照“方法”的指导去设计。原则:这是必须......
  • 阅读笔记《需求工程软件建模与分析》上
    当涉及到《需求工程软件建模与分析》时,通常是指在软件开发过程中对需求进行建模和分析的相关内容。这方面的阅读笔记可以从两个不同的角度进行,一个是建模,另一个是分析。阅读笔记一:需求工程软件建模1.概述建模的重要性在软件开发中,需求建模是一个关键的阶段。了解客户需求、系......
  • 阅读笔记《需求工程软件建模与分析》下
     1.分析过程的关键步骤 需求收集:确保全面收集和理解用户需求,包括功能性和非功能性需求。需求分析:对收集到的需求进行详细的分析,识别可能的冲突或不一致性。需求验证:确保需求是准确、完整、一致且可追溯的,以便于后续的开发过程。 2.分析工具和技术 数据流图:描述......
  • Programming Abstractions in C阅读笔记:p246-p247
    《ProgrammingAbstractionsinC》学习第68天,p246-p247总结,总计2页。一、技术总结本章通过“thegameofnim(尼姆游戏)”,这类以现实生活中事物作为例子进行讲解的情况,往往对学习者要求比较高,需要学习者具备一定的人文、历史知识或专业知识,如果缺乏这方面的知识,就会导致读者在......
  • 开关电源的设计反激变换器
    开关电源的设计是一份非常耗时费力的苦差事,需要不断地修正多个设计变量,直到性能达到设计目标为止。本文step-by-step介绍反激变换器的设计步骤,并以一个6.5W隔离双路输出的反激变换器设计为例,主控芯片采用NCP1015。基本的反激变换器原理图如图1所示,在需要对输入输出进行电气隔......
  • 读元宇宙改变一切笔记07_硬件与互操作性(上)
    1.      元宇宙的头号入口1.1.        元宇宙最令人兴奋的地方在于,我们可以借此开发用来访问、渲染和操纵它的新设备1.1.1.          AppNewton于1993年发布,是世界上第一款掌上电脑1.2.        功能超强大又轻巧的AR和沉浸式VR头显1.2.......
  • 1/13 学习进度笔记
    今日安装了PySpark库以及学习了如何在Windows系统中通过SSH远程连接Linux系统使用Python语言来开发Spark程序什么是PySpark 我们前面使用过bin/pyspark程序,要注意,这个只是一个应用程序,提供一个Python解释器执行环境来运行Spark任务我们现在说的PySpark,指的是Python的......
  • gin学习笔记(三)—— 会话管理
    会话管理HTTP会话管理HTTP协议的特点是一问一答(请求然后响应)。基本上,Web应用都实现了用户管理,因此当用户发送请求时,服务器要能识别出是哪个用户,最简单的方法就是客户端每次请求,都附上用户信息。这样既不安全也不高效,故提出会话(Session),会话一般存储用户信息。服务端会话(S......