0

我正在使用Midpoint circle algorithm生成圆圈。我不想画这些圆圈。相反,我想将它们存储为多边形。显然,坐标的顺序是错误的,所以如果我使用Graphics.DrawPolygon来绘制这些圆,那么圆将变成线网。

问:如何修改算法以生成正确定义的多边形?或者,如何从一组点(在这种情况下属于一个圆)创建一个有效的多边形?

更新:这成功了。

var firstHalf = points.Where(p => p.Y >= cy).OrderBy(p => p.X);
var secondHalf = points.Where(p => p.Y < cy).OrderByDescending(p => p.X);

var polygon = new List<Point>();
polygon.AddRange(firstHalf);
polygon.AddRange(secondHalf);
4

1 回答 1

2

对于圆来说,对两半进行排序就足够了,例如在 x 中在 y_mid 上方按升序排序,在 y_mid 下方按降序排序。这些点应该由你的多边形组成。

于 2012-06-14T07:45:47.637 回答