Я хочу сохранить точки на окружности в определенной последовательности, независимо от начальной точки

#c# #convex-hull

#c# #выпуклая оболочка

Вопрос:

моя программа создает случайные точки на окружности. И я хочу сохранить эти точки в массиве соответственно. Например, сначала я выбираю случайные точки (например, пусть это будет p1), а затем сортирую их по часовой стрелке и добавляю в массив.

Это мой пример вывода программы

А также я делюсь своими программными кодами, может быть, вы захотите это увидеть.

     public void producePoint()
    {
        double angle;
        PointF org = new PointF(250, 250);
        float rad = 250;       
        for (int i = 0; i < Int32.Parse(totalTextBox.Text); i  )
        {
            points[i] = new Points();
            angle = random.Next(0, 360);
            points[i].name = "P"   i.ToString();
            points[i].coordX = (float)(rad * Math.Cos(angle * Math.PI / 180F))   org.X   area.X 10;
            points[i].coordY = (float)(rad * Math.Sin(angle * Math.PI / 180F))   org.Y   area.Y 10;
        }
     }
public void DrawLine(string a , string b)
    {
        Points point1 = new Points();
        Points point2 = new Points();

        for (int i = 0; i < Int32.Parse(totalTextBox.Text); i  )
        {
            if (points[i].name == a)
            {
                point1 = points[i];
            }
            if (points[i].name == b)
            {
                point2 = points[i];
            }
            if (a == b)
            {
                point1 = point2;
            }             
        }
private void drawL_Click(object sender, EventArgs e)
    {
        if (firstPointComboBox.SelectedItem == null || secondPointComboBox.SelectedItem == null)
        {
            MessageBox.Show("Please,choose points");
        }
        else
        {
            DrawLine(firstPointComboBox.SelectedItem.ToString(), secondPointComboBox.SelectedItem.ToString());
        }
        
    }
 

Комментарии:

1. Что вы имеете в виду под «по часовой стрелке»? Вы не можете понять это по двум пунктам.

2. Сортировка их не должна быть слишком сложной. У вас есть переменная, вызываемая angle в вашем коде. Почему бы не отсортировать его по этой переменной?

3. @Xaver спасибо за ваш ответ. Я упустил это из виду. Решение таково. Спасибо.