Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void calculateAngle(Object &object, int mouseX, int mouseY) {
- double centreX, centreY, MouseX, MouseY;
- MouseX = (double)mouseX;
- MouseY = (double)mouseY;
- centreX = (double) (object.x + ((double) (object.w / 2)));
- centreY = (double) (object.y + ((double) (object.h / 2)));
- if (MouseX == centreX && MouseY == centreY)
- return;
- else if (MouseX < centreX && MouseY == centreY)
- object.angle = 0;
- else if (MouseX == centreX && MouseY < centreY)
- object.angle = 90;
- else if (MouseX > centreX && MouseY == centreY)
- object.angle = 180;
- else if (MouseX == centreX && MouseY > centreY) {
- object.angle = 270;
- }
- else {
- double adjacent = abs(centreX - MouseX);
- double opposite = abs(centreY - MouseY);
- int quadrantNum;
- if (MouseX < centreX && MouseY < centreY)
- quadrantNum = 0;
- else if (MouseX > centreX && MouseY < centreY)
- quadrantNum = 1;
- else if (MouseX > centreX && MouseY > centreY)
- quadrantNum = 2;
- else if (MouseX < centreX && MouseY > centreY)
- quadrantNum = 3;
- if (quadrantNum % 2 == 0)
- object.angle = opposite / adjacent;
- else
- object.angle = adjacent / opposite;
- object.angle = (((atan(object.angle)) * 180) / M_PI) + (90 * quadrantNum);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement