定义多边形类,包含属性:点坐标数组,点数等信息, 和三个函数分别为:赋值、求多变形周长函数、求多边形面积函数。具体怎么实现
时间: 2023-04-02 20:04:50 浏览: 149
你好,关于定义多边形类,可以这样实现:
class Polygon {
public:
Polygon(int n) : num(n), points(new Point[n]) {}
~Polygon() { delete[] points; }
void setPoints(Point* p) { memcpy(points, p, sizeof(Point) * num); }
double perimeter() const {
double p = ;
for (int i = ; i < num; i++) {
p += points[i].distanceTo(points[(i + 1) % num]);
}
return p;
}
double area() const {
double a = ;
for (int i = ; i < num; i++) {
a += points[i].x * points[(i + 1) % num].y - points[(i + 1) % num].x * points[i].y;
}
return fabs(a) / 2;
}
private:
int num;
Point* points;
};
其中,Point 是一个点类,包含 x 和 y 坐标信息,distanceTo 函数用于计算两点之间的距离。赋值函数可以根据具体需求实现。