Python 绘制给定两个端点的半圆路径(3D)
假设一个像地球一样的球形物体。假设我有两个终点3D,我现在在哪里,我想去哪里。我想在大气中构造一条路径——某种半圆形路径,从一点插值到另一点。 地球上的一条路,就像地球上的那条Python 绘制给定两个端点的半圆路径(3D),python,algorithm,matlab,3d,Python,Algorithm,Matlab,3d,假设一个像地球一样的球形物体。假设我有两个终点3D,我现在在哪里,我想去哪里。我想在大气中构造一条路径——某种半圆形路径,从一点插值到另一点。 地球上的一条路,就像地球上的那条 根据当前位置计算下一个位置。以前有人做过计算吗?如果你想要和链接一样精确的东西,你需要找到或推导出一个考虑到地球曲率的3D轨迹公式(我不想做现在推导公式可能需要的微积分)。你最好试着让他们推导公式。不过,他们可能会将您重定向到更面向物理的堆栈交换,这可能知道公式 然而,你也可以简单地通过创建一个弧来作弊,但是除非你非常小
根据当前位置计算下一个位置。以前有人做过计算吗?如果你想要和链接一样精确的东西,你需要找到或推导出一个考虑到地球曲率的3D轨迹公式(我不想做现在推导公式可能需要的微积分)。你最好试着让他们推导公式。不过,他们可能会将您重定向到更面向物理的堆栈交换,这可能知道公式 然而,你也可以简单地通过创建一个弧来作弊,但是除非你非常小心地选择弧的中点,否则它看起来可能不会那么好
Z
为旋转轴,平面XY
为赤道的椭球体?如果是,则使用球面坐标系,如P(a,b,h)a=,b=,h=
。。。离地高度:
r=(Re+h)*cos(b);
x=r*cos(a);
y=r*sin(a);
z=(Rp+h)*sin(b);
其中:
是椭球体的极半径(在Z轴的中心和极之间)Rp
是椭球体的赤道半径(XY平面上的圆)Re
是PI
3.1415
P0、P1
3D点。将它们转换为球坐标,以便:
P0(a0,b0,h0)
P1(a1,b1,h1)
我假设h=0
。现在只需通过一些参数将P(a,b,h)P0插值到P1
这将在曲面上创建路径。要做到这一点,只需向h
添加一些曲线,如下所示:
h=h0+(h1-h0)*t+H*cos(PI*t)
其中,H
是高于表面的最大高度。您可以添加任何曲线类型。。。现在只需执行for
循环,其中t
通过某个步骤(0.01
)从0
到1
,然后计算P
。将其转换回笛卡尔坐标并绘制线段。或者只是画你的移动物体h=h0+(h1-h0)*t+H*cos(PI*t)