Manim的代码练习02:在manim中Dot ,Arrow和NumberPlane对象的使用

  • Dot:指代点对象或者表示点的符号。
  • Arrow:指代箭头对象,包括直线上的箭头或者向量箭头等。
  • NumberPlane:指代数轴平面对象,在Manim中用来创建包含坐标轴的数学坐标系平面。
  • Text:指代文本对象,用来显示文字信息。

 1.Dot对象的使用。

class Dot(point=array([0., 0., 0.]), radius=0.08, 
stroke_width=0, fill_opacity=1.0,color=ManimColor('#FFFFFF'), **kwargs)
  1. point(Point3D)- 点的位置。
  2. radius(float)- 点的半径。
  3. stroke_width(float)- 点边缘的厚度。
  4. fill_opacity(float)- 点的填充颜色的不透明度。
  5. color(ParsableManimColor)- 点的颜色。
  6. kwargs - 要传递给圆形对象的其他参数。

所以我们现在用两种方式进行编写代码:

from manim import *class DotExample01(Scene):def construct(self):#背景颜色的调试self.camera.background_color = "#ece6e2"dot1 = Dot(point=LEFT, radius=0.08)dot2 = Dot(point=ORIGIN)dot3 = Dot(point=RIGHT)dot4=Dot(point=([0, 2, 0]), radius=0.1, stroke_width=0, fill_opacity=1.0, color=ManimColor('red'))dot5=Dot(point=([0, -2, 0]), radius=0.1, stroke_width=0, fill_opacity=1.0, color=ManimColor('red'))self.add(dot1,dot2,dot3,dot4,dot5)

 运行结果如下:

 2.Arrow对象的使用

class Arrow(*args, stroke_width=6, buff=0.25,max_tip_length_to_length_ratio=0.25,max_stroke_width_to_length_ratio=5, **kwargs)

参数:

  • args – 要传递给Line的参数。
  • stroke_width(float)– 箭头的粗细。受max_stroke_width_to_length_ratio影响。
  • buff(float)– 箭头从起点和终点的距离。
  • max_tip_length_to_length_ratio(float)– tip_length与箭头长度成比例。增加此比率会提高tip_length的最大值。
  • max_stroke_width_to_length_ratio(float)– stroke_width与箭头长度成比例。增加此比率会使stroke_width的最大值提高。
  • kwargs – 要传递给Line的其他参数。

 接下来我们实际使用一下代码:

from manim import *# 定义ArrowExample类,用于展示箭头的不同效果
class ArrowExample(Scene):# 构建场景def construct(self):# 创建箭头对象arrow_1 = Arrow(start=RIGHT, end=LEFT, color=GOLD)arrow_2 = Arrow(start=RIGHT, end=LEFT, color=GOLD, tip_shape=ArrowSquareTip(), buff=0.2).shift(DOWN)# 将箭头对象放入Group中g1 = Group(arrow_1, arrow_2)# 创建正方形对象和箭头对象square = Square()arrow_3 = Arrow(start=LEFT, end=RIGHT)arrow_4 = Arrow(start=LEFT, end=RIGHT, buff=0)# 将正方形对象和箭头对象放入Group中g2 = Group(square, arrow_3, arrow_4)# 创建箭头对象arrow_5 = Arrow(ORIGIN, config.top).shift(LEFT * 4)arrow_6 = Arrow(UP + config.top, config.top).shift(LEFT * 3)# 将箭头对象放入Group中g3 = Group(arrow_5, arrow_6)# 将所有Group对象放入另一个Group中,并排列group_all = Group(g1, g2, g3).arrange(buff=2)# 将整个Group对象添加到场景中展示self.add(group_all)

结果如下:

 3.NumberPlane对象的使用

class NumberPlane(x_range=(-7.111111111111111, 7.111111111111111, 1), 
y_range=(-4.0, 4.0, 1), x_length=None, y_length=None, 
background_line_style=None, faded_line_style=None, 
faded_line_ratio=1, make_smooth_after_applying_functions=True, **kwargs)

参数:

  • x_range (Sequence[float] | None):水平方向平面上的[x_min、x_max、x_step]值。
  • y_range (Sequence[float] | None):垂直方向平面上的[y_min、y_max、y_step]值。
  • x_length (float | None):平面的宽度。
  • y_length (float | None):平面的高度。
  • background_line_style (dict[str, Any] | None):影响平面背景线构造的参数。
  • faded_line_style (dict[str, Any] | None):类似于background_line_style,影响场景背景线的构造。
  • faded_line_ratio (int):确定背景线中的方块数:2 = 4个方块,3 = 9个方块。
  • make_smooth_after_applying_functions (bool):目前无效。
  • kwargs (dict[str, Any]):要传递给Axes的其他参数。

接下来实际操作:

from manim import *
class NumberPlaneExample(Scene):def construct(self):#背景颜色的调试self.camera.background_color = WHITE#调试网格线的颜色,宽带和透明度number_plane = NumberPlane(background_line_style={"stroke_color": RED,"stroke_width":2,"stroke_opacity": 1})self.add(number_plane)

结果如下:

 再试一下:

from manim import *
class NumberPlaneExample(Scene):def construct(self):#背景颜色的调试self.camera.background_color = WHITE#调试网格线的颜色,宽带和透明度number_plane=NumberPlane(x_range=(-7.111111111111111, 7.111111111111111, 1), y_range=(-4.0, 4.0, 1), x_length=None, y_length=None, background_line_style=None, faded_line_style=None, faded_line_ratio=1, make_smooth_after_applying_functions=True)self.add(number_plane)

运行结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/46327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系列--命令详解

目录 一、Linux资源管理方式 二、查询类型命令详解 三、文件管理类型命令详解 四、文件压缩与解压 五、文件编辑 六、系统命令 七、文件内容查看命令 一、Linux资源管理方式 linux操作系统采用一个文档树来组织所有的资源。这棵树的根目录的名字叫做://…

使用 HttpServlet 接收网页的 post/get 请求

前期工作:部署好 idea 和 一个 web 项目 idea(2021),tomcat(9) ->创建一个空的项目 -> 新建一个空的模块 -> 右键单击模块 选择 Add..Fra.. Sup.. -> 勾选Web App...后点击OK -> 点击 file - Project Struc... -> 选择刚刚的模块 -> 点…

Web 性能入门指南-2.0 核心网络性能指标LCP、INP、CLS

Largest Contentful Paint、Interaction to Next Paint 和 Cumulative Layout Shift 是前端性能优化和用户体验评估中的重要指标,以下是它们的英文缩写及中文含义: 最大内容绘制 (LCP) 英文缩写:Largest Contentful Paint,LCP …

Linux - 基础开发工具(yum、vim、gcc、g++、make/Makefile、git)

目录 Linux软件包管理器 - yum Linux下安装软件的方式 认识yum 查找软件包 安装软件 如何实现本地机器和云服务器之间的文件互传 卸载软件 Linux编辑器 - vim vim的基本概念 vim下各模式的切换 vim命令模式各命令汇总 vim底行模式各命令汇总 vim的简单配置 Linux编译器 - gc…

IOSUI自动化之mobiledevice

mobiledevice 要求 MAC OS X 10.6 以上版本 通过USB连接你的iPhone设备 需要安装mobiledevice 安装app需要提前安装开发者证书 安装 brew update brew install mobiledevice 支持的能力 安装卸载app 连接电脑的iphone设备列表 mobiledevice list_devices 获取设备属性 mobiled…

C 语言指针进阶

1.0 指针的定义 指针是内存中一个最小单元的编号(内存单元的编号称之为地址【地址就是指针指针就是地址】)指针通常是用来存放内存地址的一个变量。本质上指针就是地址:口语上说的指针起始是指针变量,指针变量就是一个变量&#…

MySQL覆盖索引和索引跳跃扫描

最近在深入学习MySQL,在学习最左匹配原则的时候,遇到了一个有意思的事情。请听我细细道来。 我的MySQL版本为8.0.32 可以通过 show variables like version; 查看使用的版本。 准备工作: 先建表,SQL语句如下: c…

golang基础用法

一、基础用法 基础定义 // 变量 var int i i 5 i :5 i, j : 3,"dsafd"// 常量const ( i "adfa" b 5 )// 特殊常量itoa itoa重新出现表示规0 后面会自动1 const (Monday iota // 0Tuesday // 1Wednesday // 2Thursday // 3Friday…

Element Plus 与 Vue 3:构建现代化 Web 应用的完美搭档

引言 Element Plus是基于Vue 3的组件库,它继承了Element UI的优秀基因,为Vue 3应用提供了丰富的界面组件。Element Plus不仅拥有与Element UI相同的高质量组件,还针对Vue 3进行了优化和更新,确保了与Vue 3的无缝集成。 环境准备…

Vue3单文件jsx输出多组件示例遇到的坑

感谢博主减肥吧Evan提供的SFC实现多组件的思路和实现&#xff0c;小卷在大佬的基础上再完善下实现。 我们从tsx的API使用上得到启发&#xff0c;可以在vue的单文件组件&#xff08;sfc&#xff09;中使用defineComponent来定义和导出多个独立的小组件。此时sfc中的<templat…

SSM框架学习笔记(仅供参考)

&#xff08;当前笔记简陋&#xff0c;仅供参考&#xff09; 第一节课&#xff1a; &#xff08;1&#xff09;讲述了Spring框架&#xff0c;常用jar包&#xff0c;以及框架中各个文件的作用 &#xff08;2&#xff09;演示了一个入门程序 &#xff08;3&#xff09;解释了…

Redis 实现的延时队列组件

最近看开源看到一个好用的延时队列组件&#xff0c;已经上生产。代码量很少&#xff0c;主要就是利用Redis监听过期键实现的。然后搞点策略模式柔和柔和。利用Spring Start 封装了一下&#xff0c;全是俺掌握的知识&#xff0c;稍微研究了下就搞懂了。觉得挺有用的&#xff0c;…

006-三台交换机堆叠

三台交换机堆叠 链形连接和环形连接 链形配置IRF与环形配置IRF的区别 三个交换机链形配置IRF与三个交换机环形配置IRF的主要区别体现在以下几个方面&#xff1a; 物理位置要求&#xff1a; 链形连接&#xff1a;对成员设备的物理位置要求相对较低&#xff0c;主要适用于成员…

计算机课程名,汇总

MP-ZHI, CS-DOG, R, NBA ! 助记词&#xff1a;媒婆知道&#xff0c;CS-DOG&#xff0c;认识NBA明星&#xff01; M&#xff0c;密&#xff0c;《网络安全》P&#xff0c;Performance&#xff0c;性能卓越的&#xff0c;指的是超算Z&#xff0c;组&#xff0c;《计算机组成原理…

Linux下如何解压rar文件

在windows下我们压缩解压文件通常后缀为rar&#xff0c;在linux下我们压缩解压文件通常后缀为tar 默认在linux下我们不能解压压缩rar文件&#xff0c;那我们如何使用呢&#xff1f; 我们可以下载rarlinux安装包实现解压压缩后缀为rar的包 下载地址&#xff1a;https://www.r…

HybridCLR + Addressable 热更新篇(一)

目录 前言一、HybridCLR 和 Addressable 是什么&#xff1f;1. HybridCLR2. Addressable 二、使用步骤1.HybridCLR导入2.HybridCLR配置3.Addressable导入4.Addressable配置 前言 随着移动互联网和游戏行业的快速发展&#xff0c;热更新技术变得越来越重要。热更新能够在不重新…

图——定义和基本术语

图是数据结构中非常重要的一章&#xff0c;这篇文章就先介绍一下图的定义和基本术语。 一&#xff0c;图的构成 图&#xff1a;Graph(V,E) V&#xff1a;顶点(数据元素)的有穷非空集合&#xff1b; E&#xff1a;边的有穷集合。 如下面这个图&#xff0c;由点集和边集可以确定…

Python的分布式系统设计与开发

Python中的分布式系统设计与开发是一个复杂而广泛的主题&#xff0c;它涉及多个方面&#xff0c;包括系统架构、组件设计、通信机制、数据处理等。以下是对Python中分布式系统设计与开发的详细说明&#xff1a; 一、分布式系统基础 1. 定义与特点 分布式系统是指由多个独立的…

C++——类与对象(下)

在类与对象的上和中已经把类与对象的大部分内容讲了&#xff0c;这里对最后的一些内容进行补充说明。 目录 一、初始化列表 二、类型转换 三、static成员 四、友元 五、内部类 六、匿名对象 一、初始化列表 之前我们在实现构造函数的时候&#xff0c;初始化成员变量主要是使用…

mupdf 编译说明

进入官网下载源码&#xff1a;https://www.mupdf.com/releases 挑选需要的版本&#xff0c;下载解压&#xff0c;然后打开解决方案&#xff0c;进行编译