Рассчитать траекторию с учетом координаты и угла - PullRequest
0 голосов
/ 21 марта 2012

Учитывая следующее:
- начальная точка (координата)
- угол (градус)
- скорость

.. Я хотел бы рассчитать заданную траекторию.
Например, для изображения ниже со скоростью 1: (10,10) (9,9) (8,8) (7,7) ..

Он должен двигаться во всех направлениях.
Как я могу рассчитать это?

example

1 Ответ

5 голосов
/ 21 марта 2012

Если у вас есть угол и скорость (скаляр), компоненты в направлениях x и y просты:

vx = (speed)*cos(angle)

vy = (speed)*sin(angle)

Для большинства языков угол должен быть в радианах, а не в градусах.Убедитесь, что вы конвертировали его.

Так что, если у вас есть точка (ux, uy) в момент времени t1, то позиция в момент времени t2 будет такой:на 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;
}
...