UE4 Geometry Polygon
生活随笔
收集整理的這篇文章主要介紹了
UE4 Geometry Polygon
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
UE4 Geometry Polygon
前人栽樹,后人乘涼。在計算幾何中處理多邊形的時候,經常會遇到這么一個問題,即給定多邊形頂點,確定其頂點環繞順序及計算多邊面積。
多邊形面積計算
在直角坐標系下,找到多邊形上X坐標最小的點A,以A為起點,順時針方向,找到下一個點B,計算ABB’A’梯形的面積,梯形的高是B’ - A’,是正值。在以B為起點,計算梯形BCC’B’的面積,順時針計算小梯形的面積,最后會回到A點(梯形HH’A’A),小梯形的面積和就是多邊形的面積。注意:從E點開始,梯形的高就是負值,比如梯形EE’F’F的高是F’-E’,等價于多邊形ABCDEE’A’的面積減去AHGFEE’A’的面積。
多邊形環繞方向
如上所述,計算多邊形面積時,順時針計算結果為正,逆時針計算結果為負,故可以用來判斷給定多邊形點的環繞方向。
同時,在UE4中坐標系與常規坐標系不同,故環繞方向與常識上相反。
代碼示例
bool IsClockwise(const TArray<FVector>& Polygon) {return PolygonArea(Polygon) < 0; }float PolygonArea(const TArray<FVector>& Polygon) {float A = 0;const int32 N = Polygon.Num();for(int32 i = 0; i < N; ++i) {const auto P0 = Polygon[i];const auto P1 = Polygon[(i + 1) % N];A += (P1.X - P0.X) * (P1.Y + P0.Y); //梯形面積計算的形式}return A; }參考
總結
以上是生活随笔為你收集整理的UE4 Geometry Polygon的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记本 i3 i5 i7 区别
- 下一篇: 加密算法之SHA(SHA1、SHA256