#include <iostream>
#include <cmath>
using namespace std;
struct Point
{
float x;
float y;
Point(float a, float b) : x(a), y(b)
{
}
};
double Length(Point & A, Point & B)
{
return sqrt(pow(A.x - B.x, 2) + pow(A.y - B.y, 2));
}
double Area1(Point & A, Point & B, Point & C)
{
double a, b, c;
a = Length(A, B);
b = Length(B, C);
c = Length(C, A);
double p = (a + b + c) / 2;
return sqrt((p - a) * (p - b) * (p - c) * p);//海伦公式计算三角形面积
}
double CrossProduct(Point & v1, Point & v2)
{
return v1.x * v2.y - v1.y * v2.x;
}
int main()
{
Point A(10, 2);
Point B(3, 4);
Point C(5, 7);
Point v1(B.x - A.x, B.y - A.y); //向量AB
Point v2(C.x - A.x, C.y - A.y); //向量AC
cout << CrossProduct(v1, v2) << endl;
cout << Area1(A, B, C) << endl;
return 0;
}