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

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

Сообщение Anonymous »

Я нашел способ сортировать 2D-точки по часовой стрелке в Unity, но по какой-то непонятной мне причине иногда точки все еще располагаются в неправильном порядке.
На первом изображении красная сфера находится в центре, а остальные сферы раскрашены по порядку.
На втором рисунке показано положение этих сфер в неправильном порядке.
Изображение

Изображение

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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