Я создаю круги, используя Midpoint circle algorithm. Я не хочу рисовать эти круги. Вместо этого я хочу хранить их как полигоны. Очевидно, что координаты находятся в неправильном порядке, поэтому, если бы я рисовал эти круги, например, Graphics.DrawPolygon круг станет сеткой линий.Магазин Bresenham создал круг как многоугольник?
Вопрос: Как изменить алгоритм для создания правильно заданного многоугольника? Или, как я могу создать допустимый многоугольник из множества точек (в данном случае принадлежащих кругу)?
Обновление: Это сделало трюк.
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);
Если вы знаете центр и радиус круга, почему бы просто не создать точки в его многоугольном представлении напрямую? Я не думаю, что вам нужен алгоритм окружности. Может, я пропустил что-то очевидное? –
Это, безусловно, будет работать, но для этих кругов мне нужна точность 100% пикселей. Следовательно, алгоритм средней точки - это путь. – l33t