我正在使用中点圆算法生成圆。我不想画这些圆圈。相反,我想将它们存储为多边形。显然,坐标的顺序是错误的,所以如果我使用例如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);
对于圆圈,对两半进行排序就足够了,例如在 x 上方y_mid升序和下方排序y_mid降序。托特那些点应该由你的多边形。