Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 13 / ShapeCollection / Circle.cpp
diff options
context:
space:
mode:
1 files changed, 26 insertions, 0 deletions
-rw-r--r--Sem. 13/ShapeCollection/Circle.cpp26
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