Advertisement
lennon77734

Untitled

Feb 22nd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <math.h>
  2. #include <iostream>
  3. #include <cstdio>
  4. #include <cstdlib>
  5. using namespace std;
  6.  
  7. class Point2 {
  8. private:
  9.     int x, y;
  10. public:
  11.     Point2(int _x, int _y) : x(_x), y(_y) { };
  12.     int getx() { return x; };
  13.     int gety() { return y; };
  14.     static Point2 Polar(float, float);
  15. };
  16.  
  17. inline Point2 Point2::Polar(float radius, float angle) {
  18.     Point2 p(radius*cos(angle), radius*sin(angle));
  19.     return p;
  20. }
  21.  
  22. int main(int argc, char **argv)
  23. {
  24.     int i, x, y, z, radius;
  25.     bool isPolar = false;
  26.     if (argc < 4)
  27.      return(puts("Error in input!\nType x, y, radius\nOr polar radius, polar angle, circle radius, polar\n"));
  28.  
  29.     if (argc > 4)
  30.         isPolar = true;
  31.        
  32.         x = atoi(argv[1]);
  33.         y = atoi(argv[2]);
  34.         if ( (x == 0) && (y == 0) )
  35.             return(puts("Every point on the circle is the nearest\n"));
  36.        
  37.     Point2 vertexIn(x, y);
  38.  
  39.     if (isPolar){
  40.         vertexIn = Point2::Polar(x, y);
  41.         printf("Polar\n");
  42.     }
  43.  
  44.     radius = atoi(argv[3]);
  45.     z = (int)sqrt( (vertexIn.getx() * vertexIn.getx()) + (vertexIn.gety() + vertexIn.gety()) );
  46.     Point2 vertexOut( (radius * vertexIn.getx()) / z, (radius * vertexIn.gety()) / z );
  47.     cout <<vertexOut.getx() << ';' << vertexOut.gety() <<endl;
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement