Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Point.c@1:1d2eb2143108, 2010-10-19 (annotated)
- Committer:
- erikkallen
- Date:
- Tue Oct 19 10:07:15 2010 +0000
- Revision:
- 1:1d2eb2143108
Who changed what in which revision?
User | Revision | Line number | New 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 | } |