blob: 18dd93e2de1563e8f5abfd0551c32fe913ae464b (
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
26
27
28
29
30
31
|
#include "Triangle.h"
Triangle::Triangle(int x1, int y1, int x2, int y2, int x3, int y3) : Shape(3)
{
setPoint(x1, y1, 0);
setPoint(x2, y2, 1);
setPoint(x3, y3, 2);
}
double Triangle::getArea()
{
double sideA = getPoint(0).getDist(getPoint(1));
double sideB = getPoint(1).getDist(getPoint(2));
double sideC = getPoint(2).getDist(getPoint(0));
double halfPer = getPer() / 2;
return sqrt(halfPer * (halfPer - sideA) *
(halfPer - sideB) * (halfPer - sideC));
}
double Triangle::getPer()
{
return getPoint(0).getDist(getPoint(1)) +
getPoint(1).getDist(getPoint(2)) +
getPoint(2).getDist(getPoint(0));
}
Shape* Triangle::clone()
{
Triangle* newTriangle = new Triangle(*this);
return newTriangle;
}
|