アルゴリズム、IComparer、または配列またはPointF
要素のリストをソートするメソッドの作成を手伝ってくれる人はいますか。PointF
配列に次の要素があるとしましょう:
- [0] { X = 50.0 Y = 0.0}
- [1] { X = 100.0 Y = 100.0}
- [2] { X = 0.0 Y = 100.0}
- [3] { X = 100.0 Y = 0.0}
- [4] { X = 0.0 Y = 0.0}
- [5] { X = 100.0 Y = 50.0}
- [6] { X = 50.0 Y = 100.0}
私が達成したいことは次のとおりです。
- 最初はYとXが最小の要素です
- 最低のYを持つ要素を維持しますが、Xは大きくなります
- 次に、この最低のYで可能な限り最高のXが達成されると、すべての要素がこのXになりますが、 Yはどんどん大きくなります
- top Yと top Xが達成されると、 top Xと top Yを持つ要素から、まだ top Yを持つが、下位と下位のXを持つ要素に移動します。
したがって、このソートされた配列は次のようになります。
- [4] { X = 0.0 Y = 0.0}
- [0] { X = 50.0 Y = 0.0}
- [3] { X = 100.0 Y = 0.0}
- [5] { X = 100.0 Y = 50.0}
- [1] { X = 100.0 Y = 100.0}
- [6] { X = 50.0 Y = 100.0}
- [2] { X = 0.0 Y = 100.0}
つまり、最後に を使用してこれらの点を描画するGraphics.DrawPolygon()
と、線が互いに交差しない閉じた多角形 (この場合は長方形) が得られます。
お時間をいただきありがとうございます