Math 计算给定坐标和角度的轨迹
考虑到以下情况:Math 计算给定坐标和角度的轨迹,math,geometry,angle,Math,Geometry,Angle,考虑到以下情况: -起点(坐标) -角度(度) -速度 。。我想计算给定的轨迹。 例如,对于速度为1的下方图像:(10,10)(9,9)(8,8)(7,7) 它应该能够向各个方向移动。 我怎么计算呢 如果有角度和速度(标量),则x和y方向上的组件很容易: vx = (speed)*cos(angle) vy = (speed)*sin(angle) 对于大多数语言,角度需要以弧度为单位,而不是度。一定要转换它 因此,如果在时间t1有一个点(ux,uy),那么时间t2的位置是: ux(t2)
-起点(坐标)
-角度(度)
-速度 。。我想计算给定的轨迹。
例如,对于速度为1的下方图像:(10,10)(9,9)(8,8)(7,7) 它应该能够向各个方向移动。
我怎么计算呢
如果有角度和速度(标量),则x和y方向上的组件很容易:
vx = (speed)*cos(angle)
vy = (speed)*sin(angle)
对于大多数语言,角度需要以弧度为单位,而不是度。一定要转换它
因此,如果在时间t1有一个点(ux,uy),那么时间t2的位置是:
ux(t2) = ux(t1) + vx*(t2-t1)
uy(t2) = uy(t1) + vy*(t2-t1)
让我们看看它在Java中的样子:
/**
* Method for updating a position giving speed, angle, and time step
* @param original coordinates in x, y plane
* @param speed magnitude; units have to be consistent with coordinates and time
* @param angle in radians
* @param dtime increment in time
* @return new coordinate in x, y plane
*/
public Point2D.Double updatePosition(Point2D.Double original, double speed, double angle, double dtime) {
Point2D.Double updated = new Point2D.Double();
updated.x = original.x + speed*Math.cos(angle)*dtime;
updated.y = original.y + speed*Math.sin(angle)*dtime;
return updated;
}
如果有角度和速度(标量),则x方向和y方向上的组件很容易:
vx = (speed)*cos(angle)
vy = (speed)*sin(angle)
对于大多数语言,角度需要以弧度为单位,而不是度。一定要转换它
因此,如果在时间t1有一个点(ux,uy),那么时间t2的位置是:
ux(t2) = ux(t1) + vx*(t2-t1)
uy(t2) = uy(t1) + vy*(t2-t1)
让我们看看它在Java中的样子:
/**
* Method for updating a position giving speed, angle, and time step
* @param original coordinates in x, y plane
* @param speed magnitude; units have to be consistent with coordinates and time
* @param angle in radians
* @param dtime increment in time
* @return new coordinate in x, y plane
*/
public Point2D.Double updatePosition(Point2D.Double original, double speed, double angle, double dtime) {
Point2D.Double updated = new Point2D.Double();
updated.x = original.x + speed*Math.cos(angle)*dtime;
updated.y = original.y + speed*Math.sin(angle)*dtime;
return updated;
}
在我生活的2D和3D世界中,速度向量只有2或3个分量。你贴的“速度”是多少?如果你能正确地摆出姿势,这是一个高中的三角问题。这是一个2D世界,速度基本上就是它的速度。是的,我明白了。(不需要“基本上”。)我是说速度向量应该有两个数字,不要更多。在我生活的2D和3D世界中,速度向量只有2或3个分量。你贴的“速度”是多少?如果你能正确地摆出姿势,这是一个高中的三角问题。这是一个2D世界,速度基本上就是它的速度。是的,我明白了。(不需要“基本上”。)我是说速度向量应该有两个数字,不能再多了。你能用C#或Java语法表达吗?我不太明白。你们是怎么得出这些方程的?标准的二维向量数学,微积分的普通导数,和有限差分。我明白了,我想我明白了,你们能用C#或Java语法表达吗?我不太明白。你们是怎么得出方程的?标准二维向量数学,微积分的普通导数,和有限差分。我明白了,我想我明白了,