首页 > 代码库 > 向量叉乘求多变形面积
向量叉乘求多变形面积
#include <iostream>#include <algorithm>#include <vector>#include <fstream>#include <cmath>using namespace std; struct Point { double x, y;};//计算叉乘,平面上的点,所以向量总是沿z轴方向double cross(const Point &A, const Point &B, const Point &C) { return (B.x - A.x) * (C.y - A.y) - (B.y - A.y) * (C.x - A.x);}//默认以(0,0)为向量起点,循环计算各三角形的面积double polygon_area(vector<Point>& v){ double area=0; auto it=v.begin(); for(;it<v.end();++it){ area+=cross({0,0},*it,*(it+1)); } return abs(area/2.0);}int main(){fstream fs("C:\\Documents and Settings\\Administrator\\桌面\\poly.txt");Point tmp;vector<Point> v;while(!fs.eof()){fs>>tmp.x>>tmp.y;v.push_back(tmp);}double area=polygon_area(v);cout<<"多边形面积为:"<<area<<endl;return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。