避免角度相减时的不连续性的函数

文章介绍了如何在编程中处理角度差异,确保角度值在-180到180度范围内,使用了Python的lambda函数和NumPy库进行角度规范化。示例展示了如何在给定目标角度和实际角度时计算角度差,以及如何使用NumPy对角度数组进行规范化操作。
摘要由CSDN通过智能技术生成

179度和-179度之间的差应该是2度而不是358度

def angle_difference(target_angle, actual_angle):
    angle_difference = (target_angle - actual_angle + 180 + 360) % 360 - 180
    return angle_difference

# 示例
target_angle = 89
current_angle = -92
gap = angle_difference(target_angle, current_angle)
print("角度差:", gap)
def normalize_angle(angle):
    # 将角度规范化到-180到180度之间
    normalized_angle = (angle + 180) % 360 - 180
    return normalized_angle

# 示例用法
angle_to_normalize = -820
normalized_angle = normalize_angle(angle_to_normalize)

print(f"原始角度:{angle_to_normalize} 度")
print(f"规范化后角度:{normalized_angle} 度")
import numpy as np

# 定义 normalize_angle 函数
normalize_angle = lambda angle: (angle + 180) % 360 - 180

# 创建一个 NumPy 数组
angles_array = np.array([220, -90, 480, -270, 90])

# 使用 Lambda 函数对数组中的每个元素进行 normalize_angle 运算
normalized_angles = np.vectorize(normalize_angle)(angles_array[3:])

# 打印原始数组和规范化后的数组
print("原始角度数组:", angles_array)
print("规范化后的角度数组:", normalized_angles)
import numpy as np

# 创建一个包含角度的NumPy数组
angles = np.array([0.5, 1.5, 2.5, 3.5, 4.5])

# 使用Lambda函数进行角度转换
normalize_angle = np.vectorize(lambda angle: (angle + np.pi) % (2*np.pi) - np.pi)

# 对数组中的所有角度进行转换
normalized_angles = normalize_angle(angles)

print(normalized_angles)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值