坐标系转换

该代码段定义了两个点A和B在原始坐标系中的位置,然后根据给定的角度heading(以弧度表示)计算坐标变换,将点B从原坐标系转换到一个新的旋转坐标系中。通过正弦和余弦函数处理heading的正负,得到新坐标系中点B的坐标。
摘要由CSDN通过智能技术生成

import math

# 定义原始坐标系中的两个点
A = (2, 3)
B = (5, 7)

# 定义相对角度 heading(以弧度为单位)
heading = -math.pi / 4

# 计算正弦和余弦值
sin_heading = math.sin(abs(heading))
cos_heading = math.cos(abs(heading))

# 根据 heading 的正负号选择加减号
if heading >= 0:
    x_new = (B[0]-A[0]) * cos_heading + (B[1]-A[1]) * sin_heading + A[0]
    y_new = -(B[0]-A[0]) * sin_heading + (B[1]-A[1]) * cos_heading + A[1]
else:
    x_new = (B[0]-A[0]) * cos_heading - (B[1]-A[1]) * sin_heading + A[0]
    y_new = (B[0]-A[0]) * sin_heading + (B[1]-A[1]) * cos_heading + A[1]

# 输出点 B 在新坐标系中的坐标
print("B 在新坐标系中的坐标为:({}, {})".format(x_new, y_new))
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值