Advertisement
Guest User

angle

a guest
Dec 7th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. void calculateAngle(Object &object, int mouseX, int mouseY) {
  2.     double centreX, centreY, MouseX, MouseY;
  3.     MouseX = (double)mouseX;
  4.     MouseY = (double)mouseY;
  5.     centreX = (double) (object.x + ((double) (object.w / 2)));
  6.     centreY = (double) (object.y + ((double) (object.h / 2)));
  7.     if (MouseX == centreX && MouseY == centreY)
  8.         return;
  9.     else if (MouseX < centreX && MouseY == centreY)
  10.         object.angle = 0;
  11.     else if (MouseX == centreX && MouseY < centreY)
  12.         object.angle = 90;
  13.     else if (MouseX > centreX && MouseY == centreY)
  14.         object.angle = 180;
  15.     else if (MouseX == centreX && MouseY > centreY) {
  16.         object.angle = 270;
  17.     }
  18.     else {
  19.         double adjacent = abs(centreX - MouseX);
  20.         double opposite = abs(centreY - MouseY);
  21.         int quadrantNum;
  22.         if (MouseX < centreX && MouseY < centreY)
  23.             quadrantNum = 0;
  24.         else if (MouseX > centreX && MouseY < centreY)
  25.             quadrantNum = 1;
  26.         else if (MouseX > centreX && MouseY > centreY)
  27.             quadrantNum = 2;
  28.         else if (MouseX < centreX && MouseY > centreY)
  29.             quadrantNum = 3;
  30.         if (quadrantNum % 2 == 0)
  31.             object.angle = opposite / adjacent;
  32.         else
  33.             object.angle = adjacent / opposite;
  34.         object.angle = (((atan(object.angle)) * 180) / M_PI) + (90 * quadrantNum);
  35.     }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement