c++ cpp 求解封闭多边形面积

复制代码即可使用


/*
计算多边形面积
by: 广都  gd

qq:1975767630
double get_area_number(std::vector<std::vector<double>> point_list)

参考来源
https://zhuanlan.zhihu.com/p/110025234
*/









# include <iostream>
#include <windows.h>
#include <string>
// #include <basci/basci.h> //

using namespace std;
#include <iostream>
#include <vector>

template<typename T>
std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec) {
    os << "[ ";
    for (const auto& element : vec) {
        os << element << " ";
    }
    os << "]";
    return os;
}



#include <iostream>
#include <vector>

template<typename T>
std::ostream& operator<<(std::ostream& os, const std::vector<std::vector<T>>& vec) {
    os << "[";
    for (const auto& innerVec : vec) {
        os << "[";
        for (const auto& element : innerVec) {
            os << element << ", ";
        }
        os << "], ";
    }
    os << "]";
    return os;
}





double myabs(double num){
    if(num>=0){
        return num;
    }else{
        return -num;
    }
}



double get_area_number(std::vector<std::vector<double>> point_list){
	// 改成死循环或许更好一点
	double sum_area=0;
	for (int i = 0; i < point_list.size()-1; i++) {
	    cout<<point_list[i]<<"  | "<<point_list[i+1]<<endl;
	    sum_area =sum_area+  point_list[i][0]*point_list[i+1][1] - point_list[i+1][0]*point_list[i][1];
	}
    long ss= point_list.size()-1;
    sum_area =sum_area+  point_list[ss][0]*point_list[0][1] - point_list[0][0]*point_list[ss][1];

	return myabs(sum_area/2);
}



int main() {
    // 需要界面面积大幅度修改
	std::vector<std::vector<double>> point_list;
	point_list= {{3,4},{5,11},{12,8},{9,5},{5,6}};

	double sum_number = get_area_number(point_list);

	cout<<"area: "<<sum_number<<endl;

	cout<<point_list<<endl;

	cout << endl;
	system("pause");
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值