polygon.cpp 771 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "polygon.h"
  2. void Polygon::calc_sides()
  3. {
  4. for (int i = 0; i < points.size() - 1; i++) {
  5. sides.push_back(points[i].calc_distance(points[i + 1]));
  6. }
  7. sides.push_back(points[points.size() - 1].calc_distance(points[0]));
  8. }
  9. Polygon::Polygon()
  10. {
  11. }
  12. double Polygon::calc_area()
  13. {
  14. double res=0.0;
  15. for (int i = 0; i < points.size() - 1; i++) {
  16. res += points[i].x * points[i + 1].y;
  17. res += points[i + 1].x * points[i].y;
  18. }
  19. res += points[points.size()-1].x * points[0].y;
  20. res += points[points.size()-1].y * points[0].x;
  21. return res * 0.5;
  22. }
  23. double Polygon::calc_perimeter()
  24. {
  25. double res = 0.0;
  26. for (int i = 0; i < sides.size(); i++)
  27. res += sides[i];
  28. return res;
  29. }
  30. void Polygon::name()
  31. {
  32. cout << "Polygon \n";
  33. }