atan2 с итератором CGPoint
vector<CGPoint>::iterator i;
vector<CGPoint>* bp = bicyclePad.bikePathPoints;
for(i = bp->begin(); i != bp->end()-3; i++){
angle = atan2((*i).y/(*i).x) * 180/ PI;
}
Я думаю, atan2 можно использовать только с числами с плавающей запятой и удвоениями. но я пытаюсь сделать это с помощью итератора. Как бы я поступил так же?
2 ответа
Решение
atan2
принимает два аргумента:
angle = std::atan2(i->y, i->x) * 180 / PI;
должно работать нормально. Правильная перегрузка (в зависимости от того, что CGFloat
typedefs to) будет выбран.
Обратите внимание, что i->x
а также i->y
(которые строго эквивалентны (*i).x
а также (*i).y
) являются числами (типа CGFloat
), а не итераторы.