Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 16:41   #1
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Радость Массив Точек

Вот Пока У меня начальная цель
1)просматриваемая точка и следующая точка с разными координатами(Запоминаем эту точку) и соеденияем их линиями.
Неполучается :Смотрим уже с этой точки если следующая точка с другими координатами соеденить.

Пока я сделал звполнил Массив сначала одинаковыми координатими
Затем случайными чтоб проверить свой алгоритм задаю 10 вершин обрывается на 8 итерации j- го цикла т.е…
Код:
….for (int i = 0; i < V; i++)
                for (int j = 0; j < V; j++)
i=1 j=8//обрывается цикл “Ошибка”(индекс находится вне границы массива)...
Пока получилось от повторяющихся к разным проводи линии а нужно как то запомнить последнюю точку и ее уже сравнивать со следующей.
точки соеденяются вроде правильно если я не ошибаюсь первые 5 точек с одинаковыми координатами.Получается остаемся на месте до тех пор пока не встреритя точка с другими координатами вот только цикл прерывается пишет индекс вне границы массива не пойму почему

Подскажите как сделать запомнить последнюю точку и ее уже сравнивать со следующей.

Код:
    public partial class Form2 : Form
    {
        int V;
        ArrayList m = new ArrayList();
        Random r = new Random();

        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            V = (int)numericUpDown1.Value;
            m = new ArrayList();            

           
            int s=100,d=200;
                //массив точек из случайных координат
                for (int i = 0; i < V; i++)
                {
                    if (i == 0 && i < 5)
                    {
                        m.Add(new Point(s, d));
                    }
                    if (i > 4)
                    {
                        m.Add(new Point(r.Next(Width), r.Next(Height)));
                        Invalidate();
                    }

                }                   
                        
       
        }

        private void Form2_Load(object sender, EventArgs e)
        {

        }
        private void Form2_Paint(object sender, PaintEventArgs e)
        {
            
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }

        private void Form2_Paint_1(object sender, PaintEventArgs e)
        {
            if (m.Count == 0) return;
            Graphics g = CreateGraphics();
            Pen p = new Pen(Color.Blue, 3);
            p.DashCap = System.Drawing.Drawing2D.DashCap.Round;

            // g.DrawLine(p, 0, 0, 327, 392);

            int pos = 0;
            for (int i = 0; i < V; i++)
                for (int j = 0; j < V; j++)
                {
                    if (i > 0)
                    {

                        if (m[i] == m[j])
                        {
                            Point c = (Point)m[i];
                            if (m[i] != m[j + 1])
                            {
                                Point d = (Point)m[j];
                                g.DrawLine(p, c.X, c.Y, d.X, d.Y);
                                foreach (Point t in m)
                                    g.FillEllipse(Brushes.Red, t.X - 3, t.Y - 3, 6, 6);



                                //if (m[i] == m[j])
                                //{
                                //    Point f = (Point)m[i];
                                //    g.DrawLine(p, d.X, d.Y, f.X, f.Y);
                                //    foreach (Point t in m)
                                //        g.FillEllipse(Brushes.Red, t.X - 3, t.Y - 3, 6, 6);
                                //}
                                
                            }
                        }
                        else
                        {
                            if (m[i] != m[j])
                            {
                                Point a = (Point)m[i];
                                Point b = (Point)m[j];
                                g.DrawLine(p, a.X, a.Y, b.X, b.Y);
                                //ellipse end....,
                                foreach (Point t in m)
                                    g.FillEllipse(Brushes.Red, t.X - 3, t.Y - 3, 6, 6);

                            }
                        }
                        
                    }
                }
            
        }
Alex_sim вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив точек Krezol Общие вопросы C/C++ 1 14.05.2010 14:56
20 точек Dicar Помощь студентам 1 01.04.2010 11:12
множество точек с++ Hecpon Помощь студентам 6 21.12.2009 21:18
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) kcю Помощь студентам 0 17.11.2009 19:50
множества точек kcю Помощь студентам 13 08.11.2009 11:48