Erik Kallen / PositionModule

Point.c

Committer:
erikkallen
Date:
2010-10-19
Revision:
1:1d2eb2143108

File content as of revision 1:1d2eb2143108:

#include "Point.h"
#include "math.h"

Point::Point(float x, float y) {
    _x = x;
    _y = y;
}

Point::Point() {
    _x = 0;
    _y = 0;
}

float Point::getX() {
    return _x;
}


float Point::getY() {
    return _y;
}

void Point::setX(float x) {
    _x = x;
}

void Point::setY(float y) {
    _y = y;
}


Point Point::DegreesToXY(float degrees, float radius, Point origin)
{
    Point xy = Point();
    double radians = degrees * PI / 180.0;

    xy.setX( (float)cos(radians) * radius + origin.getX());
    xy.setY( (float)sin(-radians) * radius + origin.getY());

    return xy;
}

 float Point::XYToDegrees(Point xy, Point origin)
{
    int deltaX = origin.getX() - xy.getX();
    int deltaY = origin.getY() - xy.getY();

    double radAngle = atan2((long double)deltaY, (long double)deltaX);
    double degreeAngle = radAngle * 180.0 / PI;

    return (float)(180.0 - degreeAngle);
}