Erik Kallen / PositionModule
Committer:
erikkallen
Date:
Tue Oct 19 10:07:15 2010 +0000
Revision:
1:1d2eb2143108

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
erikkallen 1:1d2eb2143108 1 #include "Point.h"
erikkallen 1:1d2eb2143108 2 #include "math.h"
erikkallen 1:1d2eb2143108 3
erikkallen 1:1d2eb2143108 4 Point::Point(float x, float y) {
erikkallen 1:1d2eb2143108 5 _x = x;
erikkallen 1:1d2eb2143108 6 _y = y;
erikkallen 1:1d2eb2143108 7 }
erikkallen 1:1d2eb2143108 8
erikkallen 1:1d2eb2143108 9 Point::Point() {
erikkallen 1:1d2eb2143108 10 _x = 0;
erikkallen 1:1d2eb2143108 11 _y = 0;
erikkallen 1:1d2eb2143108 12 }
erikkallen 1:1d2eb2143108 13
erikkallen 1:1d2eb2143108 14 float Point::getX() {
erikkallen 1:1d2eb2143108 15 return _x;
erikkallen 1:1d2eb2143108 16 }
erikkallen 1:1d2eb2143108 17
erikkallen 1:1d2eb2143108 18
erikkallen 1:1d2eb2143108 19 float Point::getY() {
erikkallen 1:1d2eb2143108 20 return _y;
erikkallen 1:1d2eb2143108 21 }
erikkallen 1:1d2eb2143108 22
erikkallen 1:1d2eb2143108 23 void Point::setX(float x) {
erikkallen 1:1d2eb2143108 24 _x = x;
erikkallen 1:1d2eb2143108 25 }
erikkallen 1:1d2eb2143108 26
erikkallen 1:1d2eb2143108 27 void Point::setY(float y) {
erikkallen 1:1d2eb2143108 28 _y = y;
erikkallen 1:1d2eb2143108 29 }
erikkallen 1:1d2eb2143108 30
erikkallen 1:1d2eb2143108 31
erikkallen 1:1d2eb2143108 32 Point Point::DegreesToXY(float degrees, float radius, Point origin)
erikkallen 1:1d2eb2143108 33 {
erikkallen 1:1d2eb2143108 34 Point xy = Point();
erikkallen 1:1d2eb2143108 35 double radians = degrees * PI / 180.0;
erikkallen 1:1d2eb2143108 36
erikkallen 1:1d2eb2143108 37 xy.setX( (float)cos(radians) * radius + origin.getX());
erikkallen 1:1d2eb2143108 38 xy.setY( (float)sin(-radians) * radius + origin.getY());
erikkallen 1:1d2eb2143108 39
erikkallen 1:1d2eb2143108 40 return xy;
erikkallen 1:1d2eb2143108 41 }
erikkallen 1:1d2eb2143108 42
erikkallen 1:1d2eb2143108 43 float Point::XYToDegrees(Point xy, Point origin)
erikkallen 1:1d2eb2143108 44 {
erikkallen 1:1d2eb2143108 45 int deltaX = origin.getX() - xy.getX();
erikkallen 1:1d2eb2143108 46 int deltaY = origin.getY() - xy.getY();
erikkallen 1:1d2eb2143108 47
erikkallen 1:1d2eb2143108 48 double radAngle = atan2((long double)deltaY, (long double)deltaX);
erikkallen 1:1d2eb2143108 49 double degreeAngle = radAngle * 180.0 / PI;
erikkallen 1:1d2eb2143108 50
erikkallen 1:1d2eb2143108 51 return (float)(180.0 - degreeAngle);
erikkallen 1:1d2eb2143108 52 }