Сортировка 2D-точек по часовой стрелкеC#

Место общения программистов C#
Anonymous
Сортировка 2D-точек по часовой стрелке

Сообщение Anonymous »

Я нашел способ сортировать 2D-точки по часовой стрелке в Unity, но по какой-то непонятной мне причине иногда точки все еще располагаются в неправильном порядке.
На первом изображении красная сфера находится в центре, а остальные сферы раскрашены по порядку.
На втором рисунке показано положение этих сфер в неправильном порядке.
изображение 1
изображение 2
private static Vector2[] SortClockwise(List vertices)
{
// calculate center
Vector2 center = Vector2.zero;
for (int i = 0; i < vertices.Count; i++)
{
center += vertices;
}
center /= vertices.Count;

// order by the angle to center
return vertices.OrderBy(point => Math.Atan2(point.x - center.x, point.y - center.y)).ToArray();
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... -clockwise

Вернуться в «C#»