程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 求解任意多邊形的面積(平面內),求解面積平面

求解任意多邊形的面積(平面內),求解面積平面

編輯:C++入門知識

求解任意多邊形的面積(平面內),求解面積平面


  平面內多邊形的計算,也就是平面坐標系內多邊形的計算,已知各定點坐標,有順序的,逆時針或者順時針。根據給出坐標求面積。

  這裡介紹一種比較簡單的方法,用積分求多邊形面積。對每條邊對x軸積分之和即可得出面積。注意如果按順時針方向求積分和得出的是面積,逆時針為面積的相反數。不明白的可以自己畫圖驗證,原理很簡單,不詳細說明。

  

 1 #include<iostream>
 2 using namespace std;
 3 //計算一條邊的積分
 4 double cal(int x1,int y1,int x2,int y2){
 5        return (x2-x1)*(y1+y2)/2.0;       
 6 }
 7 int main(){
 8     int x0,y0,x1,y1,x2,y2;
 9     int n;
10     while(cin>>n&&n!=0){//循環計算每條邊的積分
11            cin>>x1>>y1>>x2>>y2;
12         x0=x1;y0=y1;
13         double sum=0;
14         sum+=cal(x1,y1,x2,y2);
15         for(int i=3;i<=n;i++){
16             x1=x2;y1=y2;
17             cin>>x2>>y2;
18             sum+=cal(x1,y1,x2,y2);  
19         }
20         sum+=cal(x2,y2,x0,y0);//最後一個點和第一個點的連線積分。
21         printf("%.1f\n",-sum);
22     }
23     return 0;    
24 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved