提供三个点的坐标,求出平行四边形的面积
计算公式错误,请各位帮忙修正:
#include <iostream>
#include <cmath>
using namespace std;
#ifndef ShapeH
#define ShapeH
class Shape
{
public:
virtual double area()const = 0;
virtual void draw()const = 0;
};
class Point
{
//确定一个点的坐标
double x, y;
public:
Point(double x0 = 0.0, double y0 = 0.0):x(x0),y(y0){}
double getX()const{return x;}
double getY()const{return y;}
};
class Parallel:public Shape
{
//定义了三个点
Point P1, P2, P3;
public:
Parallel(double a, double b, double c, double d, double e, double f):P1(a, b),P2(c,d),P3(e,f){}
virtual double area()const
{
//这里的公式有误,请各位帮忙修正
int log = (P3.getY() - P3.getY()) - (P3.getX() - P2.getX());
int hih = P2.getY() - P1.getY();
return log * hih;
}
virtual void draw()const{Shape::draw(); cout << "平行四边形";}
Point getParP1()const{return P1;}
Point getParP2()const{return P2;}
Point getParP3()const{return P3;}
};
void Shape::draw() const{cout << " 这里应输出一个";}
#endif
void showArea(Shape &s) { cout << s.area();}
void drawShape(Shape &s){ s.draw();}
int main()
{
//只提供三个点
Parallel obj4(4, 4, 5, 5, 6, 6);
showArea(obj4);
drawShape(obj4);
cout << endl;
system("pause");
return 0;
}