Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построить многоугольник, По списку... 
:(
    Опции темы
Alkash
Дата 14.7.2009, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Доброго времени суток господа. Подскажите - как построить многоугольник по списку точек? Из-за некоторых ньюансов - использовать Массив, метод ToArray и ArrayList не представляется возможным. Буду премного благодарен.


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
Alkash
Дата 14.7.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Проблема не решена...Пока выродил вот что:

Код

public void SelectionPointRect()
  {
    int i=0;//счётчик итераций
//Spoint - List<Point>, коллекция точек тоесть
            Point X, Y, Z,Last,First;//точки
            i = 0;
            int k=0;
            Pen SelPen = new Pen(Color.Black, 2);//Карандаш рисования по форме
            //  SelPen.DashStyle = 
            First = SPoint[0];
            int last = SPoint.Count;
            try
            {
                
                while (SPoint.Count - 1 != 0)
                {
                    X = SPoint[i];
                    i++;
                    Y = SPoint[i];
                    pictureBox1.CreateGraphics().DrawLine(SelPen, X, Y);
                    i++;
                    Z = SPoint[i];
                    //k = i;
                    k = i;
                    pictureBox1.CreateGraphics().DrawLine(SelPen, Y, Z);
 
                }
            }
             catch
            {
                label1.Text = " i = " + i;
             }
            Last = SPoint[k];
            pictureBox1.CreateGraphics().DrawLine(SelPen, First, Last);
        }


Однако - кажется это не самое лучшее решение. Плюс - на предполедней итерации - вываливается эксепшн. 
Помогите всё же разобраться) Заранее благодарен.

Это сообщение отредактировал(а) Alkash - 14.7.2009, 15:42


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
PashaPash
Дата 14.7.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 9
Всего: 49



Alkash, Graphics.DrawPolygon?


--------------------
PM MAIL WWW   Вверх
Alkash
Дата 14.7.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



DrawPolygon - конечно упростит, но необходимо именно линиями.


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
Alkash
Дата 14.7.2009, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Через DrawPolygon - всё полочилось

Код

public void SelectionPointRect()
        {
            int len = SPoint.Count;
            Point[] arr = new Point[len];
            Pen SelPen = new Pen(Color.Black, 2);
            int last = SPoint.Count;
            int iter = 0;
           

                foreach (Point varN in SPoint)
                {
                    arr[iter] = varN;
                    iter++;
                }
          
                DrawForm.CreateGraphics().DrawPolygon(SelPen, arr);

        }
    }



--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.