向量叉乘求多变形面积

CODE

#include <iostream>
#include <algorithm>
#include <vector>
#include <fstream>
#include <cmath>
using namespace std;
struct Point 
{ double x, y; }; 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); } 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); } 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; }

转载于:https://www.cnblogs.com/sky-view/p/3928772.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值