求两个向量的夹角_数量积和向量积的公式

求两个向量的夹角_数量积和向量积的公式如图所示,我们要计算任意两个向量之间的夹角。(图中的坐标数字是估计值,随手给定)python代码如下importmathAB=[1,-3,5,-1]CD=[4,1,4.5,4.5]EF=[2,5,-2,6]PQ=[-3,-4,1,-6]defangle(v1,v2):dx1=v1[2]-v1[0]dy1=v1[3]-v1[1]dx2=v2[2]-v2[…


Jetbrains全系列IDE稳定放心使用

如图所示,我们要计算任意两个向量之间的夹角。

(图中的坐标数字是估计值,随手给定)

求两个向量的夹角_数量积和向量积的公式

python代码如下

import math

AB = [1,-3,5,-1]

CD = [4,1,4.5,4.5]

EF = [2,5,-2,6]

PQ = [-3,-4,1,-6]

def angle(v1, v2):

dx1 = v1[2] – v1[0]

dy1 = v1[3] – v1[1]

dx2 = v2[2] – v2[0]

dy2 = v2[3] – v2[1]

angle1 = math.atan2(dy1, dx1)

angle1 = int(angle1 * 180/math.pi)

# print(angle1)

angle2 = math.atan2(dy2, dx2)

angle2 = int(angle2 * 180/math.pi)

# print(angle2)

if angle1*angle2 >= 0:

included_angle = abs(angle1-angle2)

else:

included_angle = abs(angle1) + abs(angle2)

if included_angle > 180:

included_angle = 360 – included_angle

return included_angle

ang1 = angle(AB, CD)

print(“AB和CD的夹角”)

print(ang1)

ang2 = angle(AB, EF)

print(“AB和EF的夹角”)

print(ang2)

ang3 = angle(AB, PQ)

print(“AB和PQ的夹角”)

print(ang3)

ang4 = angle(CD, EF)

print(“CD和EF的夹角”)

print(ang4)

ang5 = angle(CD, PQ)

print(“CD和PQ的夹角”)

print(ang5)

ang6 = angle(EF, PQ)

print(“EF和PQ的夹角”)

print(ang6)

结果为

AB和CD的夹角

55

AB和EF的夹角

139

AB和PQ的夹角

52

CD和EF的夹角

84

CD和PQ的夹角

107

EF和PQ的夹角

169

以上这篇Python 计算任意两向量之间的夹角方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189607.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • vue 部署上线清除浏览器缓存「建议收藏」

    vue 部署上线清除浏览器缓存「建议收藏」vue项目打包上线之后,每一次都会有浏览器缓存问题,需要手动的清除缓存。这样用户体验非常不好,所以我们在打包部署的时候需要尽量避免浏览器的缓存。下面是我的解决方案:一、修改根目录index.html在head里面添加下面代码<metahttp-equiv=”pragram”content=”no-cache”><metahttp-equiv=”cache-control”content=”no-cache,no-store,must-revalidate”>

    2022年7月18日
  • linux ldd命令源代码,Linux中ldd命令的用法详解[通俗易懂]

    linux ldd命令源代码,Linux中ldd命令的用法详解[通俗易懂]Linux中ldd命令主要用于查看程式运行所需的共享库,那么ldd命令具体要如何使用呢?下面小编就给大家介绍下Linux下ldd命令的使用方法,感兴趣的朋友一起来学习下吧。ldd命令用于判断某个可执行的binary档案含有什么动态函式库LinuxLdd参数说明:–version  打印ldd的版本号-v–verbose  打印所有信息,例如包括符号的版本信息-d–data-relo…

    2022年5月6日
  • 装饰者设计模式(java版本)

    装饰者设计模式(java版本)

    2021年8月3日
  • 数据挖掘的过程有哪些[通俗易懂]

    数据挖掘的过程有哪些[通俗易懂]  随着大数据时代的到来,各行各业都无法避免数据洪流的洗礼,一场无声的数据变革在悄然发生。谁能更好地将隐藏在数据背后有价值的信息挖掘出来,就意味着谁能在这种变化中获得主动权,能更快更好地发展。在这背景下,加强对大数据挖掘已成为许多企业迫切需要进行的任务。  以下将从数据挖掘的概念、数据挖掘分类和数据挖掘过程三个方面进行分析,帮助您更好地理解数据挖掘。  一、数据挖掘的概念  数据挖掘是指从数据库的大量数据中揭示隐含和潜在信息的非凡过程。从数据中获取有用的信息和知识,协助事务运作,改进商品,协助企

    2022年6月23日
  • 去掉input type=file的默认样式

    去掉input type=file的默认样式

    2021年11月10日
  • pytcharm2021激活码(最新序列号破解)

    pytcharm2021激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号