Manim学习笔记05:实现向量的加法动画

news2024/9/21 4:40:11

 以同一点 O𝑂 为起点的两个已知向量 →a𝑎→, →b𝑏→,以 OA𝑂𝐴,OB𝑂𝐵 为邻边作 □OACB◻𝑂𝐴𝐶𝐵,则以 O𝑂 为起点的向量 −−→OC𝑂𝐶→
(OC𝑂𝐶 是 □OACB◻𝑂𝐴𝐶𝐵 的对角线)就是向量 →a𝑎→ 与 →b𝑏→ 的和.

1.正方形加法

from manim import *

class ParallelogramRule003(Scene):
    def construct(self):
        numberplane = NumberPlane()
        dot = Dot(ORIGIN)
        self.add(numberplane,dot)
        # Create vectors
        vec_a = Arrow(start=dot, end=[1, 3, 0],buff=0,  color=BLUE)
        self.play(Create(vec_a))
        self.wait(1)
        t0 = MathTex(r"\begin{bmatrix}1\\3\end{bmatrix}")
        origin_text_a = t0.next_to([1, 3, 0], LEFT)
        self.play(Create(origin_text_a))
        
        
        vec_b = Arrow(start=dot, end=[3, 0, 0],buff=0, color=RED)
        self.play(Create(vec_b))
        self.wait(1)
        t1 = MathTex(r"\begin{bmatrix}3\\0\end{bmatrix}")
        origin_text_b = t1.next_to([3, 0, 0], DOWN)
        self.play(Create(origin_text_b))
        
        # 创建虚线箭头
        dashed_arrow_a = DashedLine(start=ORIGIN, end=[1, 3, 0], dash_length=0.05, color=BLUE)
        self.add(dashed_arrow_a)
        # 平移虚线箭头到目标位置
        self.play(ApplyMethod(dashed_arrow_a.shift, RIGHT * 3))
        self.wait(1)
        
        dashed_arrow_b = DashedLine(start=ORIGIN, end=[3, 0, 0], dash_length=0.05, color=BLUE)
        self.add(dashed_arrow_b)
        self.play(ApplyMethod(dashed_arrow_b.shift, RIGHT+UP * 3))
        self.wait(1)

    

        
        vec_ac = Arrow(start=dot, end=[4, 3, 0],buff=0,  color=GOLD)
        self.play(Create(vec_ac))
        t2 = MathTex(r"\begin{bmatrix}3 & 4 \\ 0 & 0 \end{bmatrix}")
        origin_text_ac = t2.next_to([4, 3, 0], RIGHT)
        self.play(Create(origin_text_ac))
        
        #self.play(Create(start_arrow))

        self.wait(2)

 实现视频链接如下:

用Manim实现向量的四边形加法

三角形加法 

 已知向量非零向量 →a𝑎→, →b𝑏→,在平面内取任意一点 A𝐴 , 作 −−→AB=→a𝐴𝐵→=𝑎→ , −−→BC=→b𝐵𝐶→=𝑏→,则向量 −−→AC𝐴𝐶→ 叫做 →a𝑎→ 与 →b𝑏→ 的和,记作 →a+→b𝑎→+𝑏→,即 →a+→b=−−→AB+−−→BC=−−→AC𝑎→+𝑏→=𝐴𝐵→+𝐵𝐶→=𝐴𝐶→.

from manim import *

class ParallelogramRule004(Scene):
    def construct(self):
        numberplane = NumberPlane()
        dot = Dot(ORIGIN)
        self.add(numberplane,dot)
        # Create vectors
        vec_a = Arrow(start=dot, end=[1, 3, 0],buff=0,  color=BLUE)
        self.play(Create(vec_a))
        self.wait(1)
        t0 = MathTex(r"\begin{bmatrix}1\\3\end{bmatrix}")
        origin_text_a = t0.next_to([1, 3, 0], LEFT)
        self.play(Create(origin_text_a))
        
        
        vec_b = Arrow(start=dot, end=[3, 0, 0],buff=0, color=RED)
        self.play(Create(vec_b))
        self.wait(1)
        t1 = MathTex(r"\begin{bmatrix}3\\0\end{bmatrix}")
        origin_text_b = t1.next_to([3, 0, 0], DOWN)
        self.play(Create(origin_text_b))
        
        # 移动向量a
        # 平移虚线箭头到目标位置
        self.play(ApplyMethod(vec_a.shift, RIGHT * 3))
        self.wait(1)
        
        vec_ac = Arrow(start=dot, end=[4, 3, 0],buff=0,  color=GOLD)
        self.play(Create(vec_ac))
        t2 = MathTex(r"\begin{bmatrix}3 & 4 \\ 0 & 0 \end{bmatrix}")
        origin_text_ac = t2.next_to([4, 3, 0], RIGHT)
        self.play(Create(origin_text_ac))
        
        #self.play(Create(start_arrow))

        self.wait(2)
        

视频实现如下: 

用Manim实现向量的三角形加法

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

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

相关文章

Yolov8 姿态估计

原文:Yolov8 姿态估计 - 知乎 (zhihu.com) YOLOv8论文还没有,官方默默又加了新模型:姿态估计。 现在你可以用YOLOv8做目标检测、实例分割、图像分类、目标跟踪、姿态估计,未完待续。。。。。。 一、Yolov8姿态估计 Yolov8的姿态估计模型是在COCO数据集训练的,目前支持…

python+Selenium自动化之免登录(cookie及token)

目录 cookie免登录 通过接口获取cookie 启用浏览器绕过登录 添加token 使用登录可以减去每次登录的重复操作,直接操作系统登录后的菜单页面,也可以减少安全验证登录,如图像验证登录的操作。注意:cookie和token都有有效期。 c…

前端Vue组件化实践:打造自定义等宽tabs标签组件

在前端开发的世界里,随着业务复杂度的提升和需求的多样化,传统的整体式开发方式已经难以满足快速迭代和高效维护的需求。组件化开发作为一种重要的解决方案,正逐渐受到广大开发者的青睐。本文将结合Vue框架,探讨如何通过组件化开发…

如何在Linux上如何配置虚拟主机

在Linux上配置虚拟主机可以通过使用Apache HTTP服务器来实现。Apache是一个开源的跨平台的Web服务器软件,可以在多种操作系统上运行并支持虚拟主机的配置。 以下是在Linux上配置虚拟主机的步骤: 安装Apache HTTP服务器 在终端中运行以下命令来安装Apache…

CANoe:为什么两个VLAN接口不能设置同一个网络的IP地址呢?

经常玩CANoe的人应该配置过TCP/IP Stack中网络节点的网卡信息,基本的信息包含:MAC地址、IP地址、子网掩码、默认网关、MTU值、IPv6地址。 如果你想让发送出去的报文携带VLAN tag,可以在网卡上添加VLAN tag信息。 此时你就能得到两个新的网卡V…

加速数字化转型,信创自主可控:TapData 为银行业数据管理能力建设提供新思路

使用 TapData,化繁为简,摆脱手动搭建、维护数据管道的诸多烦扰,轻量代替 OGG、DSG 等同步工具,「CDC 流处理 数据集成」组合拳,加速仓内数据流转,帮助企业将真正具有业务价值的数据作用到实处,…

防火墙nat与智能选路

这里写目录标题 此实验是基于上个实验的基础上添加功能拓扑1办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换)首先在fw1防火墙创建电信和移动两个安全区域,并且将对应的接口划分进去配置nat测试 分公司设备可…

Java核心篇之JVM探秘:内存模型与管理初探

系列文章目录 第一章 Java核心篇之JVM探秘:内存模型与管理初探 第二章 Java核心篇之JVM探秘:对象创建与内存分配机制 第三章 Java核心篇之JVM探秘:垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战:Arthas工具使用及…

[web]-sql注入-白云搜索引擎

ctrlu查看源代码&#xff0c;发现前端有js过滤 <script>function myFunction(){var xdocument.getElementById("number").value;var adocument.getElementById("word").value;var ba.replace(/[\ |\~|\|\!|\|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\|\…

linux之find指令基础

目录 前言一、find .二、find xxx -name "*.c"三、组合查找文件名四、find . -type f五、find . -maxdepth 2 -type f六、find . -type f -perm 777七、find . -type f -name "*.txt" ! -perm 777八、借助-exec命令参考链接 前言 testfind下 check1.c ch…

【HTML入门】第十二课 - iframe框架

在早期没有出现Vue和React之前呢&#xff0c;做管理系统&#xff0c;iframe是非常普遍的技术。比如管理系统左侧有非常多的菜单&#xff0c;然后点击菜单后&#xff0c;右边就要展现不同的页面。 又或者呢&#xff0c;我们看一些网站&#xff0c;他们侧边展示着五彩绚烂的广告&…

在 PostgreSQL 里如何实现数据的实时监控和性能瓶颈的快速定位?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 在 PostgreSQL 里如何实现数据的实时监控和性能瓶颈的快速定位一、数据实时监控的重要性二、PostgreSQ…

MySQL学习记录 —— 이십 常用工具包

文章目录 1、总览2、mysqlcheck - 表维护程序1、作用2、注意事项3、语法4、命令选项下面每块都大致有这四个部分 3、Mysqldump - 数据库备份程序4、mysqladmin - MySQL 服务器管理程序5、mysqlshow - 显示数据库、表和列信息6、mysqldumpslow - 总结慢查询日志文件7、mysqlbinl…

福利:领取生育津贴汇总

大家注意了&#xff0c;最近多地区发文&#xff0c;生育津贴有了新变化。为了国家的未来&#xff0c;各位大佬记得全力以赴三胎。 01北京--不用缴费也能领取生育津贴 7月1日&#xff0c;北京市人社局、医保局、财政局、税务局等多部门联合印发了《关于领取失业保险金人员参加生…

【并发编程】进程 线程 协程

进程&#xff08;Process&#xff09;、线程&#xff08;Thread&#xff09;和协程&#xff08;Coroutine&#xff09;构成了计算机科学中实现任务并发执行的三种核心抽象机制。通常&#xff0c;为了提高程序的执行效率&#xff0c;开发者会根据应用场景和性能需求&#xff0c;…

Java核心篇之JVM调优实战:Arthas工具使用及GC日志分析

系列文章目录 第一章 Java核心篇之JVM探秘&#xff1a;内存模型与管理初探 第二章 Java核心篇之JVM探秘&#xff1a;对象创建与内存分配机制 第三章 Java核心篇之JVM探秘&#xff1a;垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战&#xff1a;Arthas工具使用及…

什么? CSS 将支持 if() 函数了?

CSS Working Group 简称 CSSWG, 在近期的会议中决定将 if() 添加到 CSS Values Module Level 5 中。 详情可见&#xff1a;css-meeting-bot 、[css-values] if() function 当我看到这个消息的时候&#xff0c;心中直呼这很逆天了&#xff0c;我们知道像 less 这些 css 这些预…

【深度学习】PyTorch深度学习笔记02-线性模型

1. 监督学习 2. 数据集的划分 3. 平均平方误差MSE 4. 线性模型Linear Model - y x * w 用穷举法确定线性模型的参数 import numpy as np import matplotlib.pyplot as pltx_data [1.0, 2.0, 3.0] y_data [2.0, 4.0, 6.0]def forward(x):return x * wdef loss(x, y):y_pred…

【原创】springboot+mysql图书共享交流平台设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

HTTP请求走私漏洞原理与利用手段分析

文章目录 前言Http请求走私1.1 漏洞诞生场景1.2 漏洞基本原理1.3 HTTP1.1与2.0 请求走私分类2.1 CL.TE类型实例2.2 TE.CL类型实例2.3 TE.TE混淆实例2.4 漏洞检测工具&#xff1f; 请求走私利用3.1 绕过前端安全控制3.2 揭示前端请求重写3.3 捕获他人请求内容3.4 走私构造反射XS…