Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Polar
  6. {
  7. private:
  8.     double radius = 0;
  9.     double angle =  0;
  10.  
  11. public:
  12.     Polar() : radius(0), angle(0) {}
  13.     Polar(double r, double angle) : radius(r), angle(angle){}
  14.  
  15.     double GetRadius()  { return radius; }
  16.     double GetAngle()   { return angle; }
  17.  
  18.     void Print()
  19.     {
  20.         cout << "radius: " << radius << " angle: " << angle << endl;
  21.     }
  22. };
  23.  
  24. class Euclidean
  25. {
  26. private:
  27.     double x = 0;
  28.     double y = 0;
  29.  
  30. public:
  31.     Euclidean() : x(0), y(0) {}
  32.     Euclidean(double x, double y) : x(x), y(y){}
  33.  
  34.     Euclidean(Polar polar)
  35.     {
  36.         x = polar.GetRadius() * cos(polar.GetAngle());
  37.         y = polar.GetRadius() * sin(polar.GetAngle());
  38.     }
  39.  
  40.     operator Polar()
  41.     {
  42.         double radius = sqrt
  43.         (
  44.             x * x +
  45.             y * y
  46.         );
  47.  
  48.         double angle = atan2(y, y);
  49.  
  50.         return Polar(radius, angle);
  51.     }
  52.  
  53.     Euclidean operator+(Euclidean e2)
  54.     {
  55.         return Euclidean(x + e2.x, y + e2.y);
  56.     }
  57.  
  58.     void operator+=(Euclidean e2)
  59.     {
  60.         x += e2.x;
  61.         y += e2.y;
  62.     }
  63.  
  64.     double GetX() { return x; }
  65.     double GetY() { return y; }
  66.  
  67.     void Print()
  68.     {
  69.         cout << "x: " << x << " y: " << y << endl;
  70.     }
  71. };
  72.  
  73. int main()
  74. {
  75.     Polar p(1.4142135623731, 0.78539816339745), p2;
  76.     Euclidean e, e2(1, 1);
  77.  
  78.     e = p;
  79.     e.Print();
  80.  
  81.     e2 += e;
  82.  
  83.     e2.Print();
  84.  
  85.     p2 = e2;
  86.     p2.Print();
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement