#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 спасибо за ваш ответ. Я упустил это из виду. Решение таково. Спасибо.