2010-01-27 137 views
5

我想弄清楚在3d空间中使用弧的一些计算,但有点丢失。假设我想在3d空间中创建一个弧来连接2个x,y,z坐标(这两个坐标的z值为0,并且只是平面上的点)。我通过发送起点x,y,z位置,旋转,速度和重力值来控制弧。如果我知道需要连接的x,y,z坐标,有没有办法计算将起始x,y,z坐标连接到最终坐标的必要旋转,速度和重力值?3d抛物线轨迹

谢谢。

编辑:谢谢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; 

我想保持角度不变的值。

+0

听起来像一个与编程无关的物理问题。另外,顺便说一句,“弧”通常是指圆的一部分,但是与重力无摩擦的轨迹通常会产生抛物线。你在找什么?所以我的建议是澄清这个问题,并连接到编程。 – tom10 2010-01-27 05:32:56

+1

给定飞机上的两点,无限数量的圆弧将与两点相交。对于直径大于或等于点之间距离的平面上的每个圆都有两个圆,您可以将这些圆中的每一个旋转到关于通过这两点的直线的任何角度。 – 2010-01-27 05:47:33

+0

沿Y或Z轴的引力是你的吗?如果它是y,那么z可以完全忽略。 – msell 2010-01-27 06:23:51

回答

5

这个link描述了“从(0,0)发射时在距离x和高度y处击中目标并且以初始速度v发射所需角度θ”的弹道轨迹,这就是你想要的, 对?为了让你的变量进入正确的形式,设置旋转角度(在xy平面中),让你指向正确的方向,即atan(y/x),并从此开始,以匹配通常的术语二维问题,将z重写为y,并将与目标的水平距离(它是sqrt(x x + y y))作为x,然后您可以直接在链接中使用该公式。

0

与2D相同。您只需通过旋转轴将您的图形转换为仿射空间,以便其中一个变为零;然后解决并撤消旋转。