From cbe098fdaf6509b6a3c8bd33b3064d8f620dd58c Mon Sep 17 00:00:00 2001 From: angeld55 Date: Fri, 28 May 2021 16:45:24 +0300 Subject: sem 14 --- Sem. 14/Shapes/Rhombus.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Sem. 14/Shapes/Rhombus.cpp (limited to 'Sem. 14/Shapes/Rhombus.cpp') diff --git a/Sem. 14/Shapes/Rhombus.cpp b/Sem. 14/Shapes/Rhombus.cpp new file mode 100644 index 0000000..62a3e8c --- /dev/null +++ b/Sem. 14/Shapes/Rhombus.cpp @@ -0,0 +1,25 @@ +#include "Rhombus.h" + +Rhombus::Rhombus(double x1, double y1, double x2, double y2) : Shape(4) +{ + setPoint(0, x1, y1); + setPoint(1, x2, y2); + double sideLength = getPointAtIndex(0).getDist(getPointAtIndex(1)); + + setPoint(2, x2 + sideLength, y2); + setPoint(3, x1 + sideLength, y1); +} + +double Rhombus::getArea() const +{ + return 0.5 * getPointAtIndex(0).getDist(getPointAtIndex(2)) * getPointAtIndex(1).getDist(getPointAtIndex(3)); +} +double Rhombus::getPer() const +{ + return 4 * getPointAtIndex(0).getDist(getPointAtIndex(1)); +} +Shape* Rhombus::clone() const +{ + Rhombus* copy = new Rhombus(*this); + return copy; +} \ No newline at end of file -- cgit v1.3.1-23-gd82d