From 92e8d2a1aefce843e9635632cc13b9c512fea734 Mon Sep 17 00:00:00 2001 From: Angeld55 Date: Wed, 20 May 2020 03:04:17 +0300 Subject: fixed poly --- Polymorphism/Shapes/Triangle.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Polymorphism/Shapes/Triangle.cpp (limited to 'Polymorphism/Shapes/Triangle.cpp') diff --git a/Polymorphism/Shapes/Triangle.cpp b/Polymorphism/Shapes/Triangle.cpp new file mode 100644 index 0000000..545e2a6 --- /dev/null +++ b/Polymorphism/Shapes/Triangle.cpp @@ -0,0 +1,31 @@ +#include "Triangle.h" + +Triangle::Triangle(int x1, int y1, int x2, int y2, int x3, int y3) : Shape(3) +{ + setPoint(x1, y1, 0); + setPoint(x2, y2, 1); + setPoint(x3, y3, 2); +} + +double Triangle::getArea() +{ + double sideA = getPoint(0).getDist(getPoint(1)); + double sideB = getPoint(1).getDist(getPoint(2)); + double sideC = getPoint(2).getDist(getPoint(0)); + + double halfPer = getPer() / 2; + + return sqrt(halfPer * (halfPer - sideA) * + (halfPer - sideB) * (halfPer - sideC)); +} +double Triangle::getPer() +{ + return getPoint(0).getDist(getPoint(1)) + + getPoint(1).getDist(getPoint(2)) + + getPoint(2).getDist(getPoint(0)); +} +Shape* Triangle::clone() +{ + Triangle* newTriangle = new Triangle(*this); + return newTriangle; +} \ No newline at end of file -- cgit v1.3.1-23-gd82d