[英]sorting PointF array
任何人都可以幫助我創建算法,IComparer或某種對PointF
元素的數組或列表進行排序的方法。 可以說我在數組中跟隨了PointF
元素:
我想要實現的是:
所以這個排序的數組看起來像這樣:
意思是,最后,如果我要使用Graphics.DrawPolygon()
繪制這些點,我會得到一個閉合的多邊形(在這種情況下是一個矩形),沒有相互交叉的線。
感謝您的時間
您想要的算法是Graham Scan。 你可以在這里讀到它:
http://en.wikipedia.org/wiki/Graham_scan
juharr的評論是正確的; 你無法用IComparable
做到這一點,因為這不是一個比較排序問題 。 要使比較排序起作用,您需要能夠比較任何兩個元素的相對大小。
較容易但較慢的算法是禮物包裝算法:
http://en.wikipedia.org/wiki/Gift_wrapping_algorithm
僅供參考,您正在尋找的形狀稱為凸殼 。 這將在搜索算法時為您提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.