Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <math.h>
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- using namespace std;
- class Point2 {
- private:
- int x, y;
- public:
- Point2(int _x, int _y) : x(_x), y(_y) { };
- int getx() { return x; };
- int gety() { return y; };
- static Point2 Polar(float, float);
- };
- inline Point2 Point2::Polar(float radius, float angle) {
- Point2 p(radius*cos(angle), radius*sin(angle));
- return p;
- }
- int main(int argc, char **argv)
- {
- int i, x, y, z, radius;
- bool isPolar = false;
- if (argc < 4)
- return(puts("Error in input!\nType x, y, radius\nOr polar radius, polar angle, circle radius, polar\n"));
- if (argc > 4)
- isPolar = true;
- x = atoi(argv[1]);
- y = atoi(argv[2]);
- if ( (x == 0) && (y == 0) )
- return(puts("Every point on the circle is the nearest\n"));
- Point2 vertexIn(x, y);
- if (isPolar){
- vertexIn = Point2::Polar(x, y);
- printf("Polar\n");
- }
- radius = atoi(argv[3]);
- z = (int)sqrt( (vertexIn.getx() * vertexIn.getx()) + (vertexIn.gety() + vertexIn.gety()) );
- Point2 vertexOut( (radius * vertexIn.getx()) / z, (radius * vertexIn.gety()) / z );
- cout <<vertexOut.getx() << ';' << vertexOut.gety() <<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement