ここでは、パッケージの3つの計算方法凸領域があります。
第一の方法は、三角形に分割され、それぞれの凸包、各三角形の面積計算です。
高速外積需要領域の第二の方法。
第三は、で結果を確認し、システムコールです。
次のようにMathWorks社のMATLABコードは次のとおりです。
すべてクリア; すべて閉じる; CLC; N- = 30 ; P = RAND(N、2 ); IND = convhull(P(:、1)、P(:、2 )); ハル = P(IND、:);%ランダム点凸包 プロット(P(:、1)、P(:、2)、' ' ); ON HOLD; プロット(ハル(:、1)、ハル(:、2)、' R&LT ' ); myarea = 0 ; %ヘレン式メソッド triangle1 =ハル(1 、:)。 以下のための私は= 2:長さ(ハル) - 1。 triangle2 = [ハル(I、:);ハル(I + 1 、:)]; 三角 = [triangle1; triangle2];%構成される三角形 A = SQRT(SUM((トライアングル(。1、:) -トライアングル(2、:))^ 2));%3辺の長さ B = SQRT(SUM((トライアングル(1、:) -トライアングル(3、:))^ 2 ))。 C = SQRT(SUM((トライアングル(2、:) -トライアングル(3、:))^ 2 )); P =(A + B + C)/ 2;%ヘロンの公式 S = SQRT(P *(PA)*(鉛)*(P- C)); myarea = myarea + S; エンド myareaの myarea = 0 ; クロス製品要件の面積%、より速く するために、私は= 1:長さ(ハル) - 1。 myarea = myarea +(ハル(I、1)*ハル(I + 1、2) -ハル(I + 1、1)*ハル(I、2))/ 2 ; エンド myarea 面積 = polyarea(ハル(:、1)、ハル(:、2))%システム機能、コントラスト
三つの方法の結果は同じです。
フィギュアを置きます: