diff options
1 files changed, 25 insertions, 0 deletions
| -rw-r--r-- | Sem. 14/ShapesCollection/Rhombus.cpp | 25 |
diff --git a/Sem. 14/ShapesCollection/Rhombus.cpp b/Sem. 14/ShapesCollection/Rhombus.cpp new file mode 100644 index 0000000..62a3e8c --- /dev/null +++ b/Sem. 14/ShapesCollection/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 |
