Три точки

  1. #include <iostream>
  2.  
  3. struct Point
  4. {
  5.     float x;
  6.     float y;
  7. };
  8.  
  9. struct PolarPoint
  10. {
  11.     float radius;
  12.     float angle;
  13. };
  14.  
  15. void polar(Point point, PolarPoint &polarPoint)
  16. {
  17.     polarPoint.radius = std::sqrt(point.x * point.x + point.y * point.y);
  18.     polarPoint.angle = std::atan2(point.x, point.y);
  19. }
  20.  
  21. int main()
  22. {
  23.     Point points[3];
  24.     for(unsigned i=0; i<3; i++)
  25.     {
  26.         std::cout << "Point " << i << " X:";
  27.         std::cin >> points[i].x;
  28.  
  29.         std::cout << "Point " << i << " Y:";
  30.         std::cin >> points[i].y;
  31.     }
  32.  
  33.     PolarPoint first;
  34.     polar(points[0], first);
  35.  
  36.     for(unsigned i=1; i<3; i++)
  37.     {
  38.         PolarPoint nextPoint;
  39.         polar(points[i], nextPoint);
  40.         if(first.angle != nextPoint.angle)
  41.         {
  42.             std::cout << "Points are not collinear!" << std::endl;
  43.             return 0;
  44.         }
  45.     }
  46.  
  47.     std::cout << "Points are collinear!" << std::endl;
  48.  
  49.     return 0;
  50. }