1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
class Point {
public:
float x,y,z;
Point(float xx=0,float yy=0,float zz=0) { x=xx; y=yy; z=zz; }
Point(const Point & b){
x=b.x;
y=b.y;
z=b.z;
}
};
//------------------------------------------------------------------------------
// CONSTANTS
//------------------------------------------------------------------------------
#define WINCH_HEIGHT (50.0)
#define BASE_RADIUS (100.0)
// the platform must always be smaller than the base
#define PLATFORM_RADIUS (50.0)
//const double PI=3.14159
#define PI (3.14159)
//------------------------------------------------------------------------------
// GLOBALS
//------------------------------------------------------------------------------
Point base[3];
Point platform[3];
//------------------------------------------------------------------------------
// METHODS
//------------------------------------------------------------------------------
/**
* Initializes the globals
*/
void setup() {
int i;
for(i=0;i<3;++i) {
base[i].x=sin(i*PI*2.0/3.0)*BASE_RADIUS;
base[i].y=cos(i*PI*2.0/3.0)*BASE_RADIUS;
base[i].z=WINCH_HEIGHT;
platform[i].x=sin(i*PI*2.0/3.0)*PLATFORM_RADIUS;
platform[i].y=cos(i*PI*2.0/3.0)*PLATFORM_RADIUS;
platform[i].z=0;
}
} |