Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 14 / ShapesCollection / Rhombus.cpp
blob: 62a3e8c990d426d132faf07adb8c4ab77acdbdfb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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;
}