triangle.cpp 725 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include <iostream>
  2. #include <cmath>
  3. #include "triangle.hpp"
  4. Triangle::Triangle(std::istream& in) {
  5. int x, y;
  6. numvertex = 3;
  7. for (int i = 0; i < numvertex; ++i) {
  8. in >> x;
  9. in >> y;
  10. new (&p[i]) Point(x, y);
  11. }
  12. }
  13. size_t Triangle::VertexNumber() {
  14. return (size_t) numvertex;
  15. }
  16. double Triangle::Area() {
  17. double a = p[0].DistP(p[1]);
  18. double b = p[1].DistP(p[2]);
  19. double c = p[2].DistP(p[0]);
  20. double _p = ( a + b + c ) / 2;
  21. return std::sqrt(_p * (_p - a) * (_p - b) * (_p - c));
  22. }
  23. void Triangle::Print(std::ostream& os) {
  24. os << "Triangle:\n";
  25. for (int i = 0; i < numvertex; ++i)
  26. os << "( " << p[i].GetX() << ", " << p[i].GetY() << " )\n";
  27. }