C++实现——任意多边形的面积
2016-04-08 15:55
429 查看
//求任意多边形的面积 /*语法:result = polygonarea(vector<Point>&polygon, int N); 参数: polygon:多变形顶点数组 N:多边形顶点数目 返回值:多边形面积 注意: 支持任意多边形,凹、凸皆可 多边形顶点输入时按顺时针顺序排列 */ #include <iostream> #include <vector> using namespace std; typedef struct Point{ double x, y; Point(){} } Point; double polygonarea(vector<Point>&polygon, int N) { int i, j; double area = 0; for (i = 0; i<N; i++) { j = (i + 1) % N; area += polygon[i].x * polygon[j].y; area -= polygon[i].y * polygon[j].x; } area /= 2; return(area < 0 ? -area : area); } //测试函数 int main(){ vector<Point> polygon; int n; cin >> n; polygon.resize(n); int i = 0; while (n--){ double x, y; cin >> x >> y; polygon[i].x = x; polygon[i].y = y; ++i; } cout << "此多边形的面积为" << polygonarea(polygon, polygon.size()) << endl; return 0; }
相关文章推荐
- C++ typedef用法
- c++11 输出时间
- c++ 字符类型转换
- Android Studio 通过JNI机制和 ndk开发的C/C++ 互相沟通
- oc 转c++的命令
- 在VC++6.0中创建静态库
- C++实现——to_string(int num)函数
- c/c++浮点型数据转换成整型数据
- c语言中快速排序算法
- 整理C语言中各种类型指针的特性与用法
- C++实验3-友元函数
- C++实现——LCS-最大公共子串长度
- Qt C++中的关键字explicit
- C++函数模板template
- 在Android C/C++层添加LOG调试
- C语言中数组的一些基本知识小结
- C语言指针学习笔记
- c语言之动态分配内存malloc函数
- C语言 调用的动态库函数重名问题分析
- C++实现——string的所有操作