From 110481bee48bdb18f3d635cbc507aac1acc7c694 Mon Sep 17 00:00:00 2001 From: angeld55 Date: Tue, 24 May 2022 20:10:50 +0300 Subject: added shapes collection --- Sem. 13/ShapeCollection/Rectangle.cpp | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Sem. 13/ShapeCollection/Rectangle.cpp (limited to 'Sem. 13/ShapeCollection/Rectangle.cpp') diff --git a/Sem. 13/ShapeCollection/Rectangle.cpp b/Sem. 13/ShapeCollection/Rectangle.cpp new file mode 100644 index 0000000..448dcc7 --- /dev/null +++ b/Sem. 13/ShapeCollection/Rectangle.cpp @@ -0,0 +1,38 @@ +#include "Rectangle.h" + +Rectangle::Rectangle(int x1, int y1, int x3, int y3) : Shape(4) +{ + setPoint(0, x1, y1); + setPoint(1, x1, y3); + setPoint(2, x3, y3); + setPoint(3, x3, y1); +} +double Rectangle::getArea() const +{ + Shape::point p0 = getPointAtIndex(0); + Shape::point p1 = getPointAtIndex(1); + Shape::point p3 = getPointAtIndex(3); + + return p0.getDist(p1) * p0.getDist(p3); + +} +double Rectangle::getPer() const +{ + Shape::point p0 = getPointAtIndex(0); + Shape::point p1 = getPointAtIndex(1); + Shape::point p3 = getPointAtIndex(3); + + return 2*(p0.getDist(p1) + p0.getDist(p3)); +} + +bool Rectangle::isPointIn(int x, int y) const +{ + Shape::point p(x, y); + return p.x >= getPointAtIndex(0).x && p.y >= getPointAtIndex(1).x && + p.y <= getPointAtIndex(0).y && p.y >= getPointAtIndex(2).y; +} +Shape* Rectangle::clone() const +{ + Shape* copy = new Rectangle(*this); + return copy; +} -- cgit v1.3.1-23-gd82d