第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何計算二維多邊形的面積?

如何計算二維多邊形的面積?

假設(shè)2d空間中的一系列點不是自相交的,那么確定結(jié)果多邊形面積的有效方法是什么?作為旁注,這不是作業(yè),我不是在尋找代碼。我正在尋找一個可以用來實現(xiàn)我自己的方法的描述。我有關(guān)于從點列表中拉出一系列三角形的想法,但我知道有一些關(guān)于凸多邊形和凹多邊形的邊緣情況我可能無法捕捉到。
查看完整描述

3 回答

?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗 獲得超9個贊

交叉產(chǎn)品是經(jīng)典之作。


如果您要進(jìn)行大量此類計算,請嘗試以下需要減少一半乘法的優(yōu)化版本:


area = 0;

for( i = 0; i < N; i += 2 )

   area += x[i+1]*(y[i+2]-y[i]) + y[i+1]*(x[i]-x[i+2]);

area /= 2;

為清晰起見,我使用數(shù)組下標(biāo)。使用指針更有效。雖然好的編譯器會為你做。


假設(shè)多邊形為“閉合”,這意味著您將第一個點復(fù)制為帶有下標(biāo)N的點。它還假設(shè)多邊形具有偶數(shù)個點。如果N不均勻,則附加第一個點的附加副本。


該算法是通過展開和組合經(jīng)典叉積算法的兩個連續(xù)迭代而獲得的。


我不太確定兩種算法在數(shù)值精度方面的比較。我的印象是上述算法優(yōu)于經(jīng)典算法,因為乘法往往會恢復(fù)減法精度的損失。當(dāng)受限制使用浮動時,與GPU一樣,這可以產(chǎn)生顯著差異。


編輯:“三角形和多邊形2D和3D區(qū)域”描述了一種更有效的方法


// "close" polygon

x[N] = x[0];

x[N+1] = x[1];

y[N] = y[0];

y[N+1] = y[1];


// compute area

area = 0;

for( size_t i = 1; i <= N; ++i )

  area += x[i]*( y[i+1] - y[i-1] );

area /= 2;


查看完整回答
反對 回復(fù) 2019-08-30
  • 3 回答
  • 0 關(guān)注
  • 831 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號