假定下列:
- 起始點(座標)
- 角(度)
- 速度計算軌跡給出的座標和角度
..我想計算給定的軌跡。
例如對於下面的圖像w /速度1:(10,10)(9,9)(8,8)(7,7)..
它應該能夠向各個方向移動。
我該如何計算它?
假定下列:
- 起始點(座標)
- 角(度)
- 速度計算軌跡給出的座標和角度
..我想計算給定的軌跡。
例如對於下面的圖像w /速度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;
}
在我生活的2D和3D世界,速度矢量只有2或3個分量。你發佈的是什麼「速度」?這是一個高中觸發問題,如果你正確地提出。 – duffymo 2012-03-21 12:30:11
這是一個** 2D世界**,**速度基本上是**速度**。 – David 2012-03-21 12:31:43
是的,我明白了。 (不需要「基本上」。)我說速度矢量應該有兩個數字,而不是更多。 – duffymo 2012-03-21 12:33:34