首页 > 其他分享 >manim边做边学--球体

manim边做边学--球体

时间:2024-11-18 11:09:06浏览次数:1  
标签:示例 -- 边学 Sphere np radius 球体 array manim

Sphere类用于创建三维球体对象,它提供了丰富的参数和方法来定制球体的外观和行为。

球体在制作三维动画时,具有广泛的应用场景。

比如:

  • 展示几何概念:通过创建不同大小、颜色和透明度的球体,可以直观地展示几何中的体积、表面积等概念
  • 物理模拟:在模拟物理现象(如重力、碰撞等)时,可以使用Sphere类来代表球体物体
  • 天文模拟:在展示天文现象(如行星运动、星系结构等)时,Sphere类可以用于创建星球、恒星等天体模型

1. 主要参数

Sphere类的主要参数包括:

参数名称 类型 说明
center Point3D 球体的中心位置
radius float 球体的半径
resolution int 球体的细分程度。这个参数通常用于控制球体表面网格的密度或光滑程度。
u_range [float] 定义了球体在u方向上的参数化范围
v_range [float] 定义了球体在v方向上的参数化范围

resolution参数设置较大时,会生成更精细、更光滑的球体表面,但也会增加计算量和内存使用。

2. 使用示例

Sphere类的使用比较简单,下面的示例重点展示其参数的不同使用方式。

2.1. 基本球体

这个示例创建了一个位于原点、半径为1的基本球体。

s = Sphere(radius=1)

2.2. 位置和颜色

在这个示例中,创建了一个球体,并对其位置和颜色进行了自定义。

球心放置在三维空间中的特定点(2, -1, 1),并且球体被填充为红色。

s = Sphere(
    radius=1.5,
    center=np.array([2, -1, 1]),
)
s.set_color(RED)

2.3. 分辨率和透明度

此示例展示了如何调整球体的分辨率和透明度。

通过增加分辨率,球体表面看起来更加光滑;通过设置透明度,让球体呈现出透明效果,使得其后的物体或背景部分可见。

# 高分辨率,透明度高
s1 = Sphere(
    radius=0.5,
    resolution=(32, 32),
    center=np.array([-1, -1, 1]),
    fill_opacity=0.2,
)
s1.set_color(BLUE)

# 中分辨率,中等透明度
s2 = Sphere(
    radius=0.5,
    resolution=(8, 8),
    fill_opacity=0.6,
)
s2.set_color(YELLOW)

# 低分辨率,不透明
s3 = Sphere(
    radius=0.5,
    resolution=(4, 4),
    center=np.array([1, 1, -1]),
    fill_opacity=1,
)
s3.set_color(RED)

2.4. 球体动画

在这个示例中,不仅创建了一个球体,还为其添加了一系列动画效果。

球体首先以淡入效果出现,然后移动到三维空间中的另一个位置,接着绕一个轴旋转,最后进行缩放。

s = Sphere(
    radius=1,
    center=np.array([1, 0, -1]),
)
self.play(FadeIn(s))
self.play(s.animate.move_to(np.array([-1.5, -1, 1])))
self.play(s.animate.rotate(PI / 2, axis=OUT))
self.play(s.animate.scale(1.5))

3. 附件

文中的代码只是关键部分的截取,完整的代码共享在网盘中(sphere.py),

下载地址: 完整代码 (访问密码: 6872)

标签:示例,--,边学,Sphere,np,radius,球体,array,manim
From: https://www.cnblogs.com/wang_yb/p/18552084

相关文章

  • 快速删除大量小文件(多种方式速度对比)
    要测试删除大量小文件,首先需要先创建大量小文件,比如创建50W个txt文件:mkdir/tmp/temp&&cd/tmp/tempseq-f"%g.txt"1500000|xargs-P4-n10000touch最快的是直接rm删除目录(但并非是瞬间的),是删除速度的极限。方法一:使用rsync$mkdir/tmp/empty$timersync-r......
  • AI多模态的5大核心关键技术,让高端制造实现智能化管理
    结合思通数科的大模型应用场景,可以通过AI技术解析高端制造业的复杂设备与文档数据,自动化地将大型零件、机械图纸、操作手册等文档结构化。大模型能够识别、拆解并分类零部件及其维修保养方法,建立零件与耗材的关系网络,构建出一个庞大的数据库。这种基于多模态技术和语义理解的能力,......
  • 软工硬做——冲刺集合
    日期冲刺日志当天完成的工作量剩余工作量已完成工作量占总工作量的百分比11.12软工硬做——冲刺日志第一天完成项目初始化,搭建基础框架无5%11.13软工硬做——冲刺日志第二天完成各功能模块的前端搭建AI助手的前端实现有待改进15%11.14软工硬做——冲刺......
  • 24.Python基础篇-异常处理
    1.什么是异常?异常(Exception)是程序在运行过程中出现的错误情况。Python提供了强大的异常处理机制,使得程序在遇到错误时能够继续执行或者给出适当的错误提示。避免程序因为某个错误而中断。异常处理有助于提高代码的健壮性,2.异常处理的语法:try:用于包围可能会抛出异常的代码块......
  • 11月16日,工信部人才交流中心 & CUUG - PGCP / PGCM认证考试完成!
    2024年11月16日,由工业和信息化部人才交流中心与北京神脑资讯技术有限公司共同举办的PostgreSQL管理员岗位能力认证考试(PGCP中级/PGCM高级)完成。 中级PG认证专家-PGCP(PostgreSQLCertifiedProfessional):是对PostgreSQL数据库技术能力的一种认可,达到了专家级别,可以对PostgreSQ......
  • 银河战舰队--冲刺日志5
    银河战舰队--冲刺日志5这个作业属于哪个课程班级的链接这个作业要求在哪里2024秋软工实践团队作业-第三次(Alpha冲刺)-作业-软件工程2024-班级博客-博客园团队名称银河战舰团队成员-学号102202129-林伟宏102202131-林鑫102202109-木合塔拉提10220214......
  • 博客园外包之第二单
    周六的时候,在众包群里接了第二单,这单是群友发的,要求仿一个网站。周六中午和博客园团队确认了接单,下午和客户简单沟通了下需求,晚上确定了一下方案,利用周日一天的时间完成了这一单,到晚上10点半的时候交付完成,用时差不多10个小时左右。这一单比之前那单麻烦一点,要进行开发,但好在客......
  • 银河战舰队--冲刺日志6
    银河战舰队--冲刺日志6这个作业属于哪个课程班级的链接这个作业要求在哪里2024秋软工实践团队作业-第三次(Alpha冲刺)-作业-软件工程2024-班级博客-博客园团队名称银河战舰团队成员-学号102202129-林伟宏102202131-林鑫102202109-木合塔拉提10220214......
  • [攻防世界]不确定,再看看
    [攻防世界]不确定,再看看题目做题做累了吧,给你准备了一道钢琴曲,要仔细听哦!我藏得很深。hint1:信息隐藏一般要求载体需要有一定的冗余度,而base64编码刚好就有这个特点。解题下载得到音频文件放入Audacity,并无收获解锁新工具Deepsound主要用于处理音频文件的加密。以将敏感......
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit
    1.问题描述:使用系统分享组件分享本地文件,点击分享菜单下方的“另存为”将要分享的文件分享至系统文件管理中,在文件管理中查看分享进来的文件为0B。尝试了3种uri的写法都不行,代码如下:consturi=getContext().getApplicationContext().filesDir+'/xxx.json'consturi1='fi......