假设像地球一样的球形物体。说我有两个终点3D,我现在和我想去的地方。我想在大气层中构建一条路径 - 某种半圆形路径可以从一个点插到另一个点。 地球上的路径就像http://workshop.chromeexperiments.com/projects/armsglobe/
中的路径一样根据当前位置计算下一个位置。有人曾经为此做过数学计算吗?
答案 0 :(得分:3)
类似球体的对象
你的意思是椭圆体,其中Z
为旋转轴,平面XY
为赤道?如果是,请使用球面坐标系,如P(a,b,h) a=<0,2PI>, b=<-PI,+PI>, h=<0,+inf>
...高于表面的高度:
r=(Re+h)*cos(b);
x=r*cos(a);
y=r*sin(a);
z=(Rp+h)*sin(b);
其中:
Rp
是椭圆体的极半径(Z轴上的中心和极点之间)Re
是椭球的赤道半径(XY平面上的圆)PI
是3.1415
... 2点之间的曲线路径
现在您拥有P0,P1
3D 积分。将它们转换为球面坐标,以便:
P0(a0,b0,h0)
P1(a1,b1,h1)
我假设h=0
。现在只需通过某个参数P(a,b,h)
P1
P0插入t=<0,1>
a=a0+(a1-a0)*t
b=b0+(b1-b0)*t
h=h0+(h1-h0)*t
这将在表面上创建路径。如上所述,只需向h
添加一些曲线,如下所示:
h=h0+(h1-h0)*t+H*cos(PI*t)
H
高于表面的最大高度。您可以添加任何曲线类型...现在只需执行for
循环,其中t
从0
转到1
一步(0.01
)并计算{ {1}}。将其转换回笛卡尔坐标并绘制线段。或者只是绘制你的移动物体......
答案 1 :(得分:1)
如果你想要与链接完全相同的东西,你需要找到或派生(我不倾向于做微积分,可能需要立即得到它的公式)3D考虑到地球曲率的轨迹公式。你最好尝试mathematics stack并让他们得出公式。虽然,他们可能会将您重定向到更加物理化的堆栈交换,这可能知道公式。
然而,您也可以通过创建弧线来欺骗,但它可能看起来不太好看,除非您在选择弧的中间点时要非常小心。