Я хочу повернуть 2-D изображение в направлении, куда я нажимаю, ко всем квадрантам.Для этого мне нужно рассчитать угол относительно объекта.Мне нужно 2 вектора.
Я пытался сделать это: один вектор будет точкой «щелчка», другой - «воображаемым» горизонтальным вектором, отходящим от объекта с той же Х, что и «щелчок»."точка, но с Y объекта.Это послужило бы вторым вектором для расчета угла от объекта.
Я создал тестовую программу с 3 объектами, чтобы посмотреть, смогу ли я получить эти углы.b6
- это объект, b7
- это "точка щелчка" примерно в 45º от b6
, а b8
- это еще одна "точка щелчка" примерно в 135º от b6
.
Это кодЯ использую:
#define PI 3.14159265
int main(int argc, char** argv) {
Button b6(100,100);
Button b7(150,50);
Button b8(150,150);
int dot1 = b7.getX() * b7.getX() + b7.getY() * b6.getY();
int det1 = b7.getX() * b6.getY() - b7.getY() * b7.getX();
double angle1 = atan2(det1,dot1)* 180/PI;
int dot2 = b8.getX() * b8.getX() + b8.getY() * b6.getY();
int det2 = b8.getX() * b6.getY() - b8.getY() * b8.getX();
double angle2 = atan2(det2,dot2)* 180/PI;
}
Результаты не соответствуют фактической позиции b7
и b8
.angle1
- это 15,25, angle2
- -11,31.
Я новичок в этом, и я не знаю, что я делаю, это полный беспорядок.Может ли кто-нибудь помочь мне вычислить эти углы?