3D 抛物线轨迹

6
我正在尝试使用三维空间中的弧计算,但有点困惑。假设我想要在3D空间中动画一个弧以连接两个x、y、z坐标(这两个坐标都具有z值为0,是平面上的点)。我通过发送起始x、y、z位置、旋转、速度和重力值来控制弧。如果我知道需要连接的x、y、z坐标,是否可以计算出从起始坐标到结束坐标所需的旋转、速度和重力值?
谢谢。
编辑:感谢Tom10解答。为了澄清,我通过创建粒子抛物线来制作“弧线”。我试图找出如何(通过开始形成由一系列粒子组成的抛物线的开始x、y、z坐标、速度、旋转和重力)确定它将在哪里结束(最后的x、y、z坐标)。因此,如果这是需要连接的两个坐标:
x1=240;
y1=140;
z1=0;

x2=300;
y2=200;
z2=0;

如何仅使用这些变量开始计算此抛物线的旋转、速度和重力:

x1=240;
y1=140;
z1=0;
rotation;
velocity;
gravity;

我试图保持角度值不变。


听起来像是一个物理问题,与编程无关。另外,顺便说一下,“arc”通常指的是圆的一部分,但是没有摩擦力的轨迹通常会产生抛物线。你想要哪个?所以我的建议是稍微澄清一下问题,并与编程联系起来。 - tom10
1
给定平面上的两个点,将有无限数量的弧线与这两个点相交。对于平面上直径大于或等于这两个点之间距离的每个圆,都有两个弧线与之对应,并且您可以将这些圆中的每一个绕过这两个点的一条直线旋转到任意角度。 - Jerry Coffin
你的重力沿着y轴还是z轴?如果是y轴,那么可以完全忽略z轴。 - msell
@msell,我的引力目前正在应用于我的x和y坐标。 - minimalpop
如果重力作用于x和y,则z将始终为零。我认为你的x和y是地面上的位置,而z是高度,这更有意义 - 特别是对于这个问题的3D标签。 - phkahler
@duck:这是用于游戏还是严格的物理模拟?如果是用于游戏,有更简单的方法可以实现,虽然不能得到精确的结果,但足以使其看起来真实。 - BlueRaja - Danny Pflughoeft
2个回答

6
这个链接描述了弹道轨迹,以“从(0,0)发射并具有初始速度v时打击距离为x且高度为y的目标所需的发射角度θ”为目标。为了使您的变量处于正确的形式,将旋转角度(在x-y平面上)设置为指向正确的方向,即atan(y/x),然后从那时起,为了匹配二维问题的通常术语,将z重写为y,并将水平距离到目标(即sqrt(xx + yy))作为x,然后您可以直接使用链接中的公式。

-1

在三维空间中做与二维相同的操作。您只需要通过旋转轴将图形转换为仿射空间,使其中一个轴成为零;然后解决问题并撤消旋转即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接