📅  最后修改于: 2023-12-03 15:12:00.110000             🧑  作者: Mango
本文将介绍如何使用Python计算3点之间的角度。
给定3个点A、B、C,我们可以通过以下公式计算出它们之间的角度:
cosθ = (AB · BC) / (|AB| × |BC|)
其中,AB
和 BC
分别是向量 AB 和向量 BC,|AB|
和 |BC|
分别是它们长度的模。最终的角度θ等于 arccos(cosθ)
,其中 arccos()
函数的返回值是弧度制的角度。
import math
def calc_angle(a, b, c):
# 计算向量AB和向量BC
ab = [b[0] - a[0], b[1] - a[1]]
bc = [c[0] - b[0], c[1] - b[1]]
# 计算向量AB和向量BC的内积
ab_bc = ab[0] * bc[0] + ab[1] * bc[1]
# 计算向量AB和向量BC的长度
ab_length = math.sqrt(ab[0]**2 + ab[1]**2)
bc_length = math.sqrt(bc[0]**2 + bc[1]**2)
# 计算cosθ值
cos_value = ab_bc / (ab_length * bc_length)
# 计算角度值
angle = math.acos(cos_value) * 180 / math.pi
return angle
>>> a = (0, 0)
>>> b = (1, 1)
>>> c = (0, 1)
>>> calc_angle(a, b, c)
45.0
以上示例计算了3个点 (0,0)
、(1,1)
、(0,1)
之间的角度,结果为 45 度。
本文介绍了如何使用Python计算3个点之间的角度,通过向量的内积和长度计算出cos值,再通过反三角函数arccos计算得出角度值。这个算法适用于任意平面内的三个点。