matlab計算任意多邊形面積

2021-08-10 12:26:23 字數 1583 閱讀 7401

已知多邊形的各個點座標,且點按瞬時間或逆時間順序排列,求多邊形面積。

首先根據計算多邊形面積的計算公式,用向量法計算比較方便。兩向量叉乘為這倆向量組成的三角形面積的兩倍,所以多邊形面積公式為:

s = 0.5 * (oa 叉乘 ob +ob 叉乘 oc +…o** 叉乘 oa)

matlab**實現:

第一步:取得座標點資料,讀取excel

第二步:計算向量叉乘

第三步:求和即面積

主函式:

clear variables

close all

clcglobal x; %全域性變數

global y;

global len;

nreadxcel; %讀取資料

length = len; %從讀取資料來的資料數目

clear p;

p.x = zeros(length,1); % 初始化結構體等

p.y = zeros(length,1);

s = 0;

for count =1:length

%將資料賦值到p點

p(count).x = x(count);

p(count).y = y(count);

endfor count2 = 1 :length-1

s = s +getcha(p(count2),p(count2+1));

ends =s + getcha(p(length),p(1));

s = 0.5 * abs(s)

讀取excel函式:

function

nreadxcel

global x;

global y;

global len;

filename = uigetfile('*.xlsx','請點資料excel檔案');

%[posdata, text] = xlsread(filename);

[~,~, raw] = xlsread(filename);

len = length(raw);

x = cell2mat(raw(2:len,1));%第一列資料

y = cell2mat(raw(2:len,2));%第二列資料

len = len-1;

叉乘函式:

function

cha = getcha

(p1,p2)

cha =p1.x * p2.y - p2.x * p1.y;

end

excel資料和畫的多邊形

執行時資料夾:

任意多邊形面積計算

任意多邊形的面積可由任意一點與多邊形上依次兩點連線構成的三角形向量面積求和得出。向量面積 三角形兩邊向量的叉乘。如下圖 按定理,多邊形面積由p點與a g的各頂點連線所構成的三角形向量面積構成,假定多邊形頂點座標順序為a g,逆時針為正方向,則有如下結論 pab,pbc,pcd均為順時針,面積為負 p...

任意多邊形面積

給定多邊形的頂點座標 有序 讓你來求這個多邊形的面積,你會怎麼做?我們知道,任意多邊形都可以分割為n個三角形,所以,如果以這為突破點,那麼我們第一步就是把給定的多邊形,分割為數個三角形,分別求面積,最後累加就可以了,把多邊形分割為三角形的方式多種多樣,在這裡,我們按照如下圖的方法分割 s點作為起始點...

任意多邊形面積的計算

原理論述1 書中給出定理 任意多邊形的面積可由任意一點與多邊形上依次兩點連線構成的三角形向量面積求和得出。向量面積 三角形兩邊向量的叉乘。如下圖 按定理,多邊形面積由p點與a g的各頂點連線所構成的三角形向量面積構成,假定多邊形頂點座標順序為a g,逆時針為正方向,則有如下結論 pab,pbc,pc...