当前位置: 首页 > news >正文

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)

运行结果如下:

相关文章:

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

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

datawhale - 基于术语词典干预的机器翻译挑战赛 (一)

文章目录 torchtext 库是干什么用的 ?TranslationDataset 类定义 Seq2Seq模型EncoderDecoderSeq2Seq 类 load_terminology_dictionary 函数示例用法 train 函数主程序代码模型评价load_sentences 函数translate_sentence 函数evaluate_bleu 函数主程序 测试集上进行…...

【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 命令行界面开发工具

构建交互式命令行:JavaScript 中的 CLI 开发利器 前言 在现代软件开发中,命令行界面(CLI)和终端应用程序的开发变得越来越重要。为了提高用户体验和交互性,使用合适的工具和库是至关重要的。本文将介绍一些用于构建命…...

ubuntu18.04安装显卡驱动后无法进入桌面的解决办法

我没有尝试完美恢复的方法,只尝试了卸载nvidia显卡的方法 1.第一步 进 安开机键进入 1 开机进入 选项界面,选择高级模式(ubuntu 高级选项) 2.第二步 进去以后选择一个括号里面带recovery mode的选项,数字选最高最大的。 3.然后…...

javaScript的面试重点--预解析

目录 一.前言 二.预解析案例 一.前言 关于预解析,我们通过今天学习就能够知道解析器运行JS分为哪两步;能够说出变量提升的步骤和运行过程;能够说出函数提升的步骤和运行过程。 二.预解析案例 预解析,简而言之,也就是…...

Gitea 仓库事件触发Jenkins远程构建

文章目录 引言I Gitea 仓库事件触发Jenkins远程构建1.1 Jenkins配置1.2 Gitea 配置引言 应用场景:项目部署 I Gitea 仓库事件触发Jenkins远程构建 Gitea支持用于仓库事件的Webhooks 1.1 Jenkins配置 高版本Jenkins需要关闭跨域限制和开启匿名用户访问 在Jenkins启动前加入…...

springboot+vue 开发记录(九)后端打包部署运行

本篇文章主要内容是后端项目写好了,怎么打包部署到服务器上运行。 文章目录 1. 在服务器上安装Docker2. 在Docker中装MySQL3. 在Docker中设置网桥,实现容器间的网络通信4. 修改后端配置文件5. 修改pom.xml文件6. 打包7. 编写DockerFile文件8. 上传文件到…...

昇思25天学习打卡营第20天 | 基于MindNLP+MusicGen生成自己的个性化音乐

基于MindNLPMusicGen生成个性化音乐 实验简介 MusicGen是Meta AI提出的音乐生成模型,能够根据文本描述或音频提示生成高质量音乐。该模型基于Transformer结构,分为三个阶段:文本编码、音频token预测和音频解码。此实验将演示如何使用MindSpo…...

windows USB 设备驱动开发-USB主控制开发(一)

下面介绍主机驱动程序开发的高级概念和任务。 如果你正在编写与 Microsoft 提供的 USB 主机控制器扩展驱动程序 (Ucx01000.sys) 通信的新主机控制器驱动程序,则这部分内容适用于你。 下面是 Windows 中 USB 主机端驱动程序中显示的图表的修改版本。 此版本隐藏 USB…...

Dubbo 负载均衡(Load Balance)

在分布式系统中,负载均衡是确保系统高效稳定运行的关键技术之一。Dubbo 作为一款高性能的 RPC 框架,提供了多种负载均衡策略以满足不同场景的需求。本文将深入介绍 Dubbo 中常用的几种负载均衡策略:随机(Random)、轮询…...

ArcGIS Pro SDK (九)几何 3 点

ArcGIS Pro SDK (九)几何 3 点 文章目录 ArcGIS Pro SDK (九)几何 3 点1 构造地图点2 地图点生成器属性3 地图点的相等性4 缩放至指定点 环境:Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 构造地图点 // 使用生…...

基于神经网络的分类和预测

基于神经网络的分类和预测 一、基础知识(一)引言(二)神经网络的基本概念(1)神经网络(2)神经元(3)常用的激活函数(非线性映射函数)&…...

VR头显如何低延迟播放8K的RTSP|RTMP流

技术背景 我们在做Unity平台RTSP、RTMP播放器的时候,有公司提出来这样的技术需求,希望在头显播放全景的8K RTSP|RTMP直播流,8K的数据,对头显和播放器,都提出了新的要求,我们从几个方面,探讨下V…...

2、ASPX、.NAT(环境/框架)安全

ASPX、.NAT&#xff08;环境/框架&#xff09;安全 源自小迪安全b站公开课 1、搭建组合&#xff1a; WindowsIISaspxsqlserver .NAT基于windows C开发的框架/环境 对抗Java xx.dll <> xx.jar 关键源码封装在dll文件内。 2、.NAT配置调试-信息泄露 功能点&#xf…...

在家上网IP地址是固定的吗?

在数字化时代&#xff0c;互联网已成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐&#xff0c;我们都离不开网络的支持。然而&#xff0c;当我们在家中接入互联网时&#xff0c;可能会产生这样一个疑问&#xff1a;在家上网IP地址是固定的吗&#xff1f;下面一…...

交换机和路由器的工作流程

1、交换机工作流程&#xff1a; 将接口中的电流识别为二进制&#xff0c;并转换成数据帧&#xff0c;交换机会记录学习该数据帧的源MAC地址&#xff0c;并将其端口关联起来记录在MAC地址表中。然后查看MAC地址表来查找目标MAC地址&#xff0c;会有一下一些情况&#xff1a; MA…...

算法笔记——LCR

一.LCR 152. 验证二叉搜索树的后序遍历序列 题目描述&#xff1a; 给你一个二叉搜索树的后续遍历序列&#xff0c;让你判断该序列是否合法。 解题思路&#xff1a; 根据二叉搜索树的特性&#xff0c;二叉树搜索的每一个结点&#xff0c;大于左子树&#xff0c;小于右子树。…...

ChatGPT对话:如何制作静态网页?

【编者按】编者在很早以前制作过静态网页&#xff0c;之后长期没有使用&#xff0c;已完全不知道最新现状了。所以&#xff0c;从制作工具开始询问ChatGPT&#xff0c;回答非常全面&#xff0c;完全可以解决初学者的问题。 编者虽然长期不制作网页&#xff0c;但一直在编程&…...

k8s(二)

五、kubernetes架构(K8S的架构也是master和node模式&#xff09; 集群里至少需要有一个master节点&#xff0c;即就是主节点。node节点可以多个。 若是多个master节点&#xff0c;worker节点和master的apiserverr进行交互时&#xff0c;就需要通过LB(load banlance&#xff09;…...

ClickHouse表引擎概述

ClickHouse表引擎概述 表引擎的功能&#xff1a; 数据的存储方式 数据的存储位置 是否可以使用索引 是否可以使用分区 是否支持数据副本 并发数据访问 ClickHouse在建表时必须指定表引擎。 表引擎主要分为四大类&#xff1a;MergeTree系列、Log系列、与其他存储/处理系…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...