向量杂记(python)

news2024/11/18 19:54:18

向量
以 O 点为圆心, 绘制如上图,
则有向量 vOA, vOB, vOC, vOD

在这里插入图片描述

再给定一个X轴方向的单位向量 vX = [1, 0]

则 向量 vOA, vOB, vOC, vOD 分别与 vX 进行叉乘

# python 代码
# X Y 轴上的单位向量
vX = [1, 0]
vY= [0, 1]

vA = [6, 6]
vB = [-6, 6]
vC = [-6, -6]
vD = [6, -6]

c1 = np.cross(vX, vA) # 逆时针 45 度
c2 = np.cross(vX, vB) # 逆时针 90 + 45 度
c3 = np.cross(vX, vC) # 逆时针 180 + 45 度
c4 = np.cross(vX, vD) # 逆时针 270 + 45 度
print(f'c1 {c1} c2 {c2}  c3 {c3} c4 {c4}')
#       c1 6    c2 6     c3 -6    c4 -6

d1 = np.dot(vX, vA) # 逆时针 45 度
d2 = np.dot(vX, vB) # 逆时针 90 + 45 度
d3 = np.dot(vX, vC) # 逆时针 180 + 45 度
d4 = np.dot(vX, vD) # 逆时针 270 + 45 度
print(f'd1 {d1} d2 {d2}  d3 {d3} d4 {d4}')
#       d1  6   d2  -6   d3  -6  d4  6

c5 = np.cross(vX, vY) # X与Y垂直
c6 = np.cross(vA, vD)   # 垂直 
c7 = np.cross(vA, vC)   # 共线,方向相反
c8 = np.cross(vB, vD)   # 共线,方向相反
print(f'c5 {c5} c6 {c6}  c7 {c7} c8 {c8}')
#       c5  1   c6 -72   c7  0   c8  0

d5 = np.dot(vX, vY) # X与Y垂直
d6 = np.dot(vA, vD)   # 垂直 
d7 = np.dot(vA, vC)   # 共线,方向相反
d8 = np.dot(vB, vD)   # 共线,方向相反
print(f'd5 {d5} d6 {d6}  d7 {d7} d8 {d8}')
#       d5 0    d6   0   d7  -72 d8 -72

结果为:

c1 6 c2 6  c3 -6 c4 -6
d1 6 d2 -6  d3 -6 d4 6
c5 1 c6 -72  c7 0 c8 0
d5 0 d6 0  d7 -72 d8 -72

向量之间的夹角是0~180
通过叉乘 (A, B),若结果为正,则B向量在A向量的逆时针方向,
若结果为负,则B向量在A向量的逆时针方向,如 OC向量
为零,则共线
向量右手法则
向量右手法则

向量OA到向量OD 走大圆角还是小圆角

在这里插入图片描述
向量的点乘

dAD = np.dot(vA, vD)
dDA = np.dot(vD, vA)
print(f'dAD: {dAD}, dDA:{dDA}')

cAD = np.cross(vA, vD)
cDA = np.cross(vD, vA)
print(f'cAD: {cAD}, cDA: {cDA}')

# dAD: 0, dDA:0
# cAD: -72, cDA: 72
  • 点乘
    结果均一致,无法判断边的先后关系,
    只能确定两边的夹角(0-180度内)关系:锐角 > 0,直角 = 0,钝角 < 0

  • 叉乘
    结果有正有负,通过右手法则可知,cAD 为负,则应该走上图中的小圆角
    cDA结果为正,也符合右手法则,同样走小圆角
    右手法则中,均为右手手指指向第一个向量的位置,然后,手指握拳的方向,指向小于180度方向的向量

使用:
可使用A B向量,通过点乘计算其夹角角度:

# 向量角度 方法1
def angle(v1, v2):
    return math.acos(dotproduct(v1, v2) / (length(v1) * length(v2)))

# 向量角度 方法2
def angle_between(v1, v2):
    """ Returns the angle in radians between vectors 'v1' and 'v2'::

            >>> angle_between((1, 0, 0), (0, 1, 0))
            1.5707963267948966
            >>> angle_between((1, 0, 0), (1, 0, 0))
            0.0
            >>> angle_between((1, 0, 0), (-1, 0, 0))
            3.141592653589793
    """
    v1_u = unit_vector(v1)
    v2_u = unit_vector(v2)
    return np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0))

再通过叉乘, 得出其先后关系:
若得出的向量角度为30度,

  • A与B叉乘,结果为负值 , 即B向量在A向量的顺时针方向
    则AB间的夹角应为 360 - 30 = 330 度
  • A与B叉乘,结果为正值 , 即B向量在A向量的逆时针方向
    则AB间的夹角应为 360 - 30 = 330 度
    向量求夹角

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

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

相关文章

Matter理论介绍-通用-1-05:桥接设备-发现与配置流程

【源码、文档、软件、硬件、技术交流、技术支持&#xff0c;入口见文末】 【所有相关IDE、SDK和例程源码均可从群文件免费获取&#xff0c;免安装&#xff0c;解压即用】 持续更新中&#xff0c;欢迎关注&#xff01; 一、桥接设备的发现 桥接设备如何被其他Matter终端发现呢…

论文阅读《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》

论文地址&#xff1a;https://arxiv.org/pdf/2103.05950.pdf 代码地址&#xff1a;https://github.com/megvii-research/FSCE 对比学习https://zhuanlan.zhihu.com/p/346686467 目录1、存在的问题2、算法简介3、算法细节3.1、new-baseline3.2、对比建议编码3.3、对比建议编码的…

(第二章)OpGL超级宝典学习:创建我们第一个OpenGL程序,绘制一个点和三角形

目录前言创建简单的应用创建脚本渲染底色渲染底色plus使用着色器&#xff08;shader&#xff09;什么是着色器&#xff08;shader&#xff09;GLSLOpenGL的着色阶段编写着色器顶点着色器片段着色器shader对象的创建执行程序的创建删除无用的shader顶点数组对象VAO清理VAO和Prog…

跨孔CT交叉梯度联合反演算法

跨孔CT交叉梯度联合反演算法 利用交叉梯度函数的结构约束作用实现多种跨孔CT的联合反演。 文章目录跨孔CT交叉梯度联合反演算法1、跨孔CT原理2、跨孔CT正演算法2.1 多模块快速推进算法2.2 最短路径法弯曲射线追踪2.3 胖射线追踪2.4 直射线追踪3、跨孔CT正演模型4、交叉梯度联合…

Matlab渐变色生成/编辑器专业版—ColorMapPro

渐变配色在科研绘图时十分常用&#xff0c;比如三维柱状图、特征渲染散点图、热图、曲面图、等高线填充图等等&#xff0c;都需要使用渐变配色。 虽说现成的渐变配色有很多&#xff0c;比如&#xff0c;在TheColor配色工具的渐变颜色库中便集成了近千种的渐变色&#xff1a; 然…

Lambda Python 创建和使用 Layer

目标 由于 Python 代码中需要用到第三方的库, 在 Lambda 中可以通过创建自定义层(Layer)的方式来将这些依赖提供给 Lambda 运行环境. 下面演示创建一个包含第三方库 requests 的层, 以及如何在 Lambda 中调用 准备 zip 文件 首先在本地电脑上将相关依赖下载到名为 python 的…

32.多输入多输出通道

通道数是一个重要的超参数&#xff0c;通常是会仔细设计的。 在之前&#xff0c;我们仅展示了单个输入和单个输出通道的简化例子。 这使得我们可以将输入、卷积核和输出看作二维张量。 当我们添加通道时&#xff0c;我们的输入和隐藏的表示都变成了三维张量。例如&#xff0c…

OpenPCDet详细安装指南+单/多GPU训练演示

OpenPCDet详细安装指南单/多GPU训练演示前言个人环境一览安装环境安装的各版本1. 创建conda虚拟环境2. 安装PyTorch3. 安装spconv4. 安装PCDet5. 训练单GPU训练多GPU训练前言 本人总共花了两个晚上一个下午安装&#xff0c;中间因为各种版本错误、版本不兼容报各种奇奇怪怪的错…

Windows 下使用 Docker + MySQL 安装 Wiki.js

Windows 下使用 Docker MySQL 安装 Wiki.jsIntroductionChapter 1 配置数据库Part 1 数据库安装Part 2 创建 Wiki 相关配置并修改权限Chapter 2 配置 Wiki.jsPart 1 安装Part 2 配置 WikiIntroduction Wiki 是一种在网络上开放且可供多人协同创作的系统&#xff0c;比较著名的…

【触摸屏功能测试】昆仑通态MCGS——测试通过HJ212_TCPIP驱动4G功能发送212报文

1、触摸屏功能测试 型号&#xff1a;TPC7022Ni 测试内容&#xff1a; 实现4G触摸屏&#xff0c;通过自带的4G卡向平台发送HJ212报文 2、HJ212_TCPIP 驱动说明 2.1、驱动介绍 本驱动构件用于MCGS软件,通过污染物在线监控(监测)系统数据传输标准协议向下位机数采仪发送各类指…

MCU-51:静态数码管显示

目录一、数码管介绍2.1 介绍2.2 数码管引脚定义2.3 原理图二、要用到的C语言知识2.1 数组2.2 子函数三、数码管显示3.1 单个数码管显示3.2 通过定位函数实现数码管显示四、动态数码管显示一、数码管介绍 2.1 介绍 LED数码管&#xff1a;数码管是一种简单、廉价的显示器&#…

Word表格常见设置汇总

Word表格常见设置汇总 总结一些Word中常用的关于表格的设置问题。 文章目录1.居中设置2.隔页显示表格首行设置3.边框边线粗细及显示设置4.表格斜线设置5.单元格合并与拆分设置1.居中设置 全选要居中显示部分→布局→选择居中类型。 2.隔页显示表格首行设置 选择表格→表格属性→…

idea插件之自动生成时序图(Sequence Diagram)

前言 小伙们&#xff0c;你们有没有发现&#xff0c;身边经常有这样一些人&#xff0c;看着平时没怎么干活&#xff0c;到关键时候需要展示工作成果&#xff0c;会发现这些人也有工作成果&#xff0c;甚至比辛苦在干的人可能还要多一些。按常理推测&#xff0c;这绝对不是一件科…

【小程序】案例 - 本地生活(首页)

1. 首页效果以及实现步骤 新建项目并梳理项目结构 配置导航栏效果 配置 tabBar 效果 实现轮播图效果 实现九宫格效果 实现图片布局 2. 接口地址 获取轮播图数据列表的接口 【GET】 https://www.escook.cn/slides 获取九宫格数据列表的接口 【GET】 https://www.esco…

XXE工具——XXEinjection安装与使用

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是XXE工具——XXEinjection安装与使用。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1…

直播推流神器 Kplayer 手把手教你在B站7*24h全天直播

开始前的准备工作 Linux服务器 (1)KPlayer目前仅支持Linux环境并需要满足x86_64(amd64)与aarch64(arm64)CPU架构的硬件环境上运行&#xff0c;我们已经将相关依赖库静态链接至主程序中&#xff0c;这意味着你不需要额外的安装任何的第三方库来支持KPlayer的运行。 在后续的迭代…

【数据预处理】基于Pandas的数据预处理技术【前七个任务】

文章目录一.需求分析二.需求解决2.1 本次实验以california_housing加州房价数据集为例&#xff0c;下载数据集2.2 查看数据集的描述、特征及目标数据名称、数据条数、特征数量2.3 将数据读入pandas的DataFrame并转存到csv文件2.4 查看数据集各个特征的类型以及是否有空值2.5 对…

五年经验的前端社招被问:CPU 和 GPU 有什么区别?

CPU 和 GPU 的设计目标和整体架构的区别分析&#xff0c;并在全文最后使用通俗的例子做比喻帮助理解。 首先来看 CPU 和 GPU 的百科解释&#xff1a; CPU&#xff08;Central ProcessingUnit&#xff0c;中央处理器&#xff09;&#xff1a;功能主要是解释计算机指令以及处理计…

【工作流Activiti7】2、Activiti7 与 Spring Boot 及 Spring Security 整合

1. 前言 其实&#xff0c;选择用Activiti7没别的原因&#xff0c;就是因为穷。但凡是有钱&#xff0c;谁还用开源版的啊&#xff0c;当然是用商业版啦。国外的工作流引擎没有考虑中国的实际情况&#xff0c;很多像回退、委派、撤销等等功能都没有&#xff0c;所以最省事的还是…

若依前后端分离框架去掉首页 登录后跳转至动态路由的第一个路由

若依前后端分离框架去掉首页 登录后跳转至动态路由的第一个路由若依框架VUE前端界面&#xff0c;登录后默认跳转至动态路由第一路由&#xff08;第一个子菜单&#xff09;一、登录后跳转第一路由界面二、设置路由的首页路径&#xff0c;方便后续的获取三、点击若依的logo跳转的…