#include #include #include "point.h" using namespace std; point:: point(); point::point(double x, double y); double point::x() const; double point::y() const; double point::distance(point & p) const; triangle::triangle(); triangle::triangle(point a, point b, point c); point triangle::p1(); point triangle::p2(); point triangle::p3(); double triangle::area(); point triangle::center(); void triangle::shift(point v); point::point() :my_x(0), my_y(0) { } point::point(double x, double y) :my_x(x), my_y(y) { } double point::x() const { return my_x; } double point::y() const { return my_y; } double point::distance(point & p) const { return sqrt(pow(my_x-p.my_x,2)+pow(my_y-p.my_y,2)); } bool point_eq(point & a, point & b) { return ((a.my_x == b.my_x) && (a.my_y == b.my_y)); } triangle::triangle() { my_p1 = point(0,0); my_p2 = point(0,0); my_p3 = point(0,0); } triangle::triangle(point a, point b, point c) { my_p1 = a; my_p2 = b; my_p3 = c; } point triangle::p1() { return my_p1; } point triangle::p2() { return my_p2; } point triangle::p3() { return my_p3; } double triangle::area() { double a,b,c,s,Area; a = my_p1.distance(my_p2); b = my_p2.distance(my_p3); c = my_p3.distance(my_p1); s = (a+b+c)/2; Area = sqrt(s*(s-a)*(s-b)*(s-c)); return Area; } point triangle::center() { double x,y; x = (my_p1.my_x+my_p2.my_x+my_p3.my_x)/3.0; y = (my_p1.my_y+my_p2.my_y+my_p3.my_y)/3.0; return point(x,y); } void triangle::shift(point v) { my_p1.my_x += v.x(); my_p1.my_y += v.y(); my_p2.my_x += v.x(); my_p2.my_y += v.y(); my_p3.my_x += v.x(); my_p3.my_y += v.y(); }