我需要帮助,绞尽脑汁两天了没有成功 我有一个飞机,它有几个参数:起点(x,y),直线速度(恒定),飞机的起始方向(方位角)及其最小转弯半径,它只能顺时针旋转。 还给出了一个循环时间,并且需要在循环时间内更新平面的更新点。起初飞机直线飞行,一切都很好,我设法计算下一个点,问题是当它是圆形路线时,我无法计算它的下一个点。 我没有给定的角度,只有飞机的方向是北,这意味着如果它在 30 度方向,并不意味着从其圆心到起点的赤纬是 30,这只是它的方向.
非常感谢您的帮助,谢谢
我尝试使用 x(t)=x0 +Rcos(θ(t)) 和 y(t)=y0+Rsin(θ(t)) 但我找不到 θ,因为只给出了方位角,而不给出 θ 不知道如何找到他们之间的联系
下面是一些演示该过程的 Python 代码。 “dxy”是飞机的速度,以每秒为单位。 “dtheta”是飞机的偏航率,以度每秒为单位。 这应该以一个圆圈结束。
import math
import matplotlib.pyplot as plt
x = 10
y = 10
dxy = 1
theta = 0
dtheta = 1
xx = [x]
yy = [y]
for i in range(360):
print(i,x,y)
dx = dxy * math.cos(math.radians(theta))
dy = dxy * math.sin(math.radians(theta))
x += dx
y += dy
theta = (theta + dtheta) % 360
xx.append(x)
yy.append(y)
plt.plot(xx,yy)
plt.show()
事实上,它确实注意到,我在 10,10 处启动了飞机,并且由于我使用的是笛卡尔角度而不是航空角度,因此 0 位于右侧,并且数字逆时针增加。 您可以通过使用“thetax = 270 - theta”来克服这个问题。