Перемещение CGPoint на определенное расстояние вдоль определенного курса...iphone

Это кажется такой простой проблемой, но я не смог найти ответ (и я не очень хорош в математике). Я пытаюсь переместить UIView на новое расстояние CGPoint X вдоль определенного заголовка. Какова формула для определения новых координат?

(Я не хочу, чтобы это было анимировано, просто мгновенный ход)

что-то вроде:

x = 100; (current x value)
y = 150; (current y value)
d = 25; (distance to move the point)
h = 90; (west)

\\\ insert formula to determine new x,y coords

self.car.center =  (CGPointMake ([newX],[newY]);

1 ответ

Решение

Если p - это ваша точка, D - это расстояние, а θ - угол направления от оси X,

pновый.x = pстарый.x + D * cos (θ)
pновый.y = pстарый.y + D * sin(θ)

Однако вместо сохранения расстояний и углов это обычно делается с использованием векторов (что устраняет необходимость в sin/cos)

Другие вопросы по тегам