python如何求两个向量的夹角
Admin 2021-04-28 群英技术资讯 2037 次浏览
python如何求两个向量夹角?如下图所示我们想要求两个向量的顺时针夹角,那么我们要怎么样做呢?有什么方法?这篇文件就给大家介绍 python如何计算两向量的顺时针夹角,感兴趣的朋友就继续看吧。
以上述图片举例,要求 相对
的顺时针夹角。注意:这里使用图像坐标系
1 定义求顺时针角度的函数
import numpy as np def clockwise_angle(v1, v2): x1,y1 = v1 x2,y2 = v2 dot = x1*x2+y1*y2 det = x1*y2-y1*x2 theta = np.arctan2(det, dot) theta = theta if theta>0 else 2*np.pi+theta return theta
2 求 , 然后求夹角
v1 = [2-0, 1-0] = [2,1] v2 = [4-0, 5-0] = [4,5] theta = clockwise_angle(v1,v2) print(theta*180/np.pi) # 24.77
补充:求2个向量顺逆时针(最小角度)旋转角度 Python
求向量 a 旋转到向量 b 的顺时针(逆时针)最小角度。正常求2个向量夹角用内积公式就可以计算,然而求得的结果不包含方向信息。如果需要方向信息的话需要引入向量的外积来帮助我们判断。
theta是两个向量的夹角,n是垂直与2维平面的方向向量,由右手定则可以判断方向。根据定义可以通过向量的坐标计算外积
这里面由于u,v是二维平面上的向量, u3 v3 都为0。 所以 u叉乘v = (u1v2 - u2v1)*K。所以等式两边的标量相等可以求夹角rho。rho 是带正负号的和旋转方向有关,但是范围在 -90 ~ 90度。可以通过rho正负号,结合向量的点乘重新计算带方向的夹角。
这里面顺时针旋转为负,逆时针旋转为正。
def GetClockAngle(v1, v2): # 2个向量模的乘积 TheNorm = np.linalg.norm(v1)*np.linalg.norm(v2) # 叉乘 rho = np.rad2deg(np.arcsin(np.cross(v1, v2)/TheNorm)) # 点乘 theta = np.rad2deg(np.arccos(np.dot(v1,v2)/TheNorm)) if rho < 0: return - theta else: return theta a = [0,1] b = [1,0] c = [-1,0] d = [0, -1] e = [-1, -1] f = [1, -1] g = [1, 1] h = [-1, 1] print(GetClockAngle(a,g), GetClockAngle(a,b), GetClockAngle(a,f), GetClockAngle(a,d), \ GetClockAngle(a,e), GetClockAngle(a,c), GetClockAngle(a,h)) ''' 结果 (-45.00000000000001, -90.0, -135.0, 180.0, 135.0, 90.0, 45.00000000000001) '''
以上就是关于python求两个向量夹角的介绍,上述代码仅供参考,希望对大家有帮助,更多python求两个向量夹角内容大家可以继续浏览其他文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
篇文章我们来了解Python slice函数的相关内容,一些朋友可能对于slice是什么函数及其用法不是很了解,对此下文通过示例给大家介绍一下,示例代码有一定的参考价值,大家可以了解看看,感兴趣的朋友接下来就跟随小编一起学习一下吧!
这篇文章给大家分享的是如何解决python中文乱码的问题,下文有多种python中文乱码的情况以及解决办法的介绍,小编觉得挺实用的,因此分享给大家做个参考,接下来一起跟随小编看看吧。
内容介绍前言代码展示效果展示总结前言过年了,家家户户都得贴春联,红红火火过大年~春联是天朝传统节日完美衔接了民族文化的产物,以美好的诗词文字表达美好愿望,是天朝特有文学形式绽放。也是天朝人民自古以来的
这篇文章主要为大家介绍了Python全栈之线程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
怎样用python实现不是标准时间的转换?时间转换的需求还是比较常见的,很多新手可能对准时间的转换比较了解,但是不是很清楚非标准时间转换的实现,因此下文就给大家来介绍一下。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008