From 4bfbc29c7ea0b711f96346deb25dde0b2298ecde Mon Sep 17 00:00:00 2001 From: Julian T Date: Tue, 15 Sep 2020 18:51:31 +0200 Subject: Added more oop assignments --- sem5/oop/m4/shapes/src/MyTriangle.java | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 sem5/oop/m4/shapes/src/MyTriangle.java (limited to 'sem5/oop/m4/shapes/src/MyTriangle.java') diff --git a/sem5/oop/m4/shapes/src/MyTriangle.java b/sem5/oop/m4/shapes/src/MyTriangle.java new file mode 100644 index 0000000..bf9f21f --- /dev/null +++ b/sem5/oop/m4/shapes/src/MyTriangle.java @@ -0,0 +1,30 @@ + +public class MyTriangle implements Shape2d { + private MyPoint a, b, c; + + /** + * Creates a new triangle with the 3 corners a, b, c + */ + public MyTriangle(MyPoint a, MyPoint b, MyPoint c) { + this.a = a; + this.b = b; + this.c = c; + } + + // https://www.mathopenref.com/coordtrianglearea.html + public double area() { + return Math.abs(( + this.a.getX() * (this.b.getY() - this.c.getY()) + + this.b.getX() * (this.c.getY() - this.a.getY()) + + this.c.getX() * (this.a.getY() - this.b.getY())) / 2); + } + + public double perimeter() { + // Calculate the length of the 3 lines between points + double ab = b.sub(a).modulo(); + double bc = c.sub(b).modulo(); + double ca = a.sub(c).modulo(); + + return ab + bc + ca; + } +} -- cgit v1.2.3