diff options
added shapes collection
1 files changed, 26 insertions, 0 deletions
| -rw-r--r-- | Sem. 13/ShapeCollection/Circle.cpp | 26 |
diff --git a/Sem. 13/ShapeCollection/Circle.cpp b/Sem. 13/ShapeCollection/Circle.cpp new file mode 100644 index 0000000..67762d8 --- /dev/null +++ b/Sem. 13/ShapeCollection/Circle.cpp @@ -0,0 +1,26 @@ +#include "Circle.h" + +const double PI = 3.1415; +Circle::Circle(int x, int y, double radius) : Shape(1), radius(radius) +{ + setPoint(0, x, y); +} + +double Circle::getArea() const +{ + return PI * radius * radius; +} +double Circle::getPer() const +{ + return 2 * PI * radius; +} +bool Circle::isPointIn(int x, int y) const +{ + Shape::point p(x, y); + return p.getDist(getPointAtIndex(0)) <= radius; +} +Shape* Circle::clone() const +{ + Shape* copy = new Circle(*this); + return copy; +}
\ No newline at end of file |
