定义多边形类,包含属性:点坐标数组,点数等信息, 和三个函数分别为:赋值、求多变形周长函数、求多边形面积函数。
时间: 2023-04-02 20:04:49 浏览: 91
好的,这是一个关于多边形类的问题。多边形类可以包含点坐标数组、点数等信息,并且可以定义三个函数:赋值、求多边形周长函数和求多边形面积函数。赋值函数可以用来初始化多边形的点坐标数组和点数信息,求多边形周长函数可以计算多边形的周长,而求多边形面积函数可以计算多边形的面积。
相关问题
定义多边形类 包含属性:点坐标数组,点数等信息,和三个函数分别为:赋值、求多变形周长函数、求多边形面积函数,用 main() 进行测试。
下面是定义多边形类的代码:
```python
import math
class Polygon:
def __init__(self):
self.vertices = []
self.n = 0
def assign_vertices(self, vertices):
self.vertices = vertices
self.n = len(vertices)
def perimeter(self):
perimeter = 0
for i in range(self.n):
j = (i + 1) % self.n
dx = self.vertices[i][0] - self.vertices[j][0]
dy = self.vertices[i][1] - self.vertices[j][1]
perimeter += math.sqrt(dx * dx + dy * dy)
return perimeter
def area(self):
area = 0
j = self.n - 1
for i in range(self.n):
area += (self.vertices[j][0] + self.vertices[i][0]) * (self.vertices[j][1] - self.vertices[i][1])
j = i
return abs(area / 2)
# 测试代码
if __name__ == '__main__':
polygon = Polygon()
polygon.assign_vertices([(0, 0), (0, 1), (1, 1), (1, 0)])
print("多边形周长为:", polygon.perimeter())
print("多边形面积为:", polygon.area())
```
测试输出:
```
多边形周长为: 4.0
多边形面积为: 1.0
```
c++定义多边形类 包含属性:点坐标数组,点数等信息,和三个函数分别为:赋值、求多变形周长函数、求多边形面积函数,用 main() 进行测试。
下面是一个简单的多边形类定义:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Polygon {
private:
int n; // 多边形的边数
double *x; // 多边形的顶点横坐标数组
double *y; // 多边形的顶点纵坐标数组
public:
// 构造函数
Polygon(int n_) {
n = n_;
x = new double[n];
y = new double[n];
}
// 析构函数
~Polygon() {
delete[] x;
delete[] y;
}
// 赋值函数
void set_points(double *x_, double *y_) {
for (int i = 0; i < n; i++) {
x[i] = x_[i];
y[i] = y_[i];
}
}
// 求多边形周长函数
double perimeter() {
double p = 0;
for (int i = 0; i < n-1; i++) {
p += sqrt(pow(x[i+1]-x[i], 2) + pow(y[i+1]-y[i], 2));
}
p += sqrt(pow(x[0]-x[n-1], 2) + pow(y[0]-y[n-1], 2));
return p;
}
// 求多边形面积函数
double area() {
double s = 0;
for (int i = 0; i < n-1; i++) {
s += x[i]*y[i+1] - y[i]*x[i+1];
}
s += x[n-1]*y[0] - y[n-1]*x[0];
return 0.5*fabs(s);
}
};
int main() {
double x[] = {0, 3, 5, 4, 1};
double y[] = {0, 0, 2, 5, 4};
int n = sizeof(x)/sizeof(x[0]);
Polygon poly(n);
poly.set_points(x, y);
cout << "周长:" << poly.perimeter() << endl;
cout << "面积:" << poly.area() << endl;
return 0;
}
```
这个类定义了一个多边形类 Polygon,包含私有成员变量 n、x、y,分别表示多边形的边数、顶点横坐标数组、顶点纵坐标数组。类的公有成员函数包括构造函数、析构函数、赋值函数 set_points、求周长函数 perimeter 和求面积函数 area。其中,set_points 函数用于给多边形的顶点坐标数组赋值,perimeter 函数用于计算多边形的周长,area 函数用于计算多边形的面积。在 main 函数中,我们定义了一个五边形,使用 set_points 函数给多边形的顶点坐标数组赋值,然后调用 perimeter 和 area 函数计算多边形的周长和面积,并输出结果。
需要注意的是,这里的计算多边形面积的算法是基于叉积的,而且只适用于凸多边形。如果要计算非凸多边形的面积,需要使用其他的算法。
阅读全文