From 495fe9ae299e81c213161d992d05cc11a403a1d7 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 20 May 2020 03:02:00 +0300 Subject: Add files via upload --- Polymorphism/Triangle.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Polymorphism/Triangle.cpp (limited to 'Polymorphism/Triangle.cpp') diff --git a/Polymorphism/Triangle.cpp b/Polymorphism/Triangle.cpp new file mode 100644 index 0000000..18dd93e --- /dev/null +++ b/Polymorphism/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