Мне действительно нужна помощь здесь. Я пытаюсь создать программу, подобную игре «, соединяющей точки», где у вас есть точки с номерами из (1 ... n + 1), и вам нужно соединить их с линиями. Итак, у меня есть панель, и я прочитал из файла координаты точек. Но я застрял, потому что не могу понять, как соединить точки с линиями.Подключение точек в соответствии со строкой
Подводя итог, что я хочу сделать:
- Вы нажимаете на точку 1, при нажатии на точку 2, и они соединяются с линией, в противном случае они не подключения.
- И вам нужно объединить точки в порядке от 1 до n + 1. Надеюсь, вы поймете меня. Танки много вперед!
private void panel1_Paint(object sender, PaintEventArgs e)
{
List<String> pav1;
pav1 = new List<String>();
StreamReader datafile = new StreamReader("pav1.txt");
int[] X = new int[100];
int[] Y = new int[100];
int k = 0;
string line;
while (datafile.Peek() >= 0)
{
line = datafile.ReadLine();
X[k] = Int16.Parse(line);
line = datafile.ReadLine();
Y[k] = Int16.Parse(line);
k++;
}
datafile.Close();
Brush aBrush = (Brush)Brushes.Black;
for (int i = 0; i < k; i++)
{
e.Graphics.FillEllipse(aBrush, X[i], Y[i], 10, 10);
e.Graphics.DrawString((i + 1).ToString(), new Font("Arial", 10),
System.Drawing.Brushes.Gray, new Point(X[i] + 20, Y[i]));
}
}
Шаг 1) замените массивы на «Список» для большей гибкости и создайте «Список ListOfPoints'. Шаг 2) Добавьте «ListOfPoints.Add» ([новая точка (Xk], Y [k])); «Шаг 3) Добавьте« e.Graphics.DraLines (Pens.Red, ListOfPoints.ToArray() ' –
TaW
TaW, извините, я не могу получить, что там делать. Я могу изменить список, но моя проблема заключается в том, как рисовать линии и подключать точки. Где я застрял – Luna
Чтобы нарисовать линию, используйте 'Graphics.DrawLine'. Для рисования нескольких строк используйте 'Graphics.DrawLines'. Кроме того: __обработка в данных должна происходить только один раз__ или всякий раз, когда данные __change__, а не в событии Paint !!! – TaW