簡體   English   中英

長頂點的排序列表以在C#中形成多邊形

[英]order list of Lat long vertices to form a polygon in C#

我有一些Lat long列表,它們圍繞一個中心點形成一個多邊形。 我想順時針獲取Lat-Long的有序列表,以便在該有序列表中連接Lat-Long頂點並形成非凸多邊形。

如下面的示例所示,從一組頂點生成多邊形的定義不明確。

A = ( 0, 0)
B = ( 3,-3)
C = ( 6,-1)
D = ( 4,-1)
E = ( 4, 1)
F = ( 6, 1)
G = ( 3, 3)

順時針形成多邊形的一種可能性是

AGFEDCBA

和順序

AGEFCDBA

是不同的。 第一個多邊形是凹面,第二個正負面是凸面。 如果刪除A且其余點在GB軸上鏡像,則甚至可以從給定的頂點集中定義兩個非凸多邊形。 更確切地說,這組頂點是

B = ( 3,-3)
C = ( 6,-1)
D = ( 4,-1)
E = ( 4, 1)
F = ( 6, 1)
G = ( 3, 3)

E' = ( 2, 1)
F' = ( 0, 1)
D' = ( 2,-1)
C' = ( 0,-1)

而兩個不同的多邊形是

GEFCDB-C'-D'-E'-F'-G

GFEDCB-D'-C'-F'-E'-G

但是,如果一個人對給定頂點的凸包多邊形(凸包的邊界)感興趣,則有很多不同的算法可以計算出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM