Erik Kallen / PositionModule
Revision:
1:1d2eb2143108
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Point.c	Tue Oct 19 10:07:15 2010 +0000
@@ -0,0 +1,52 @@
+#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);
+}
\ No newline at end of file