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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2013, 17:56   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию Шестиугольники

В одном примере увидел вот такую вещь,там еще при нажатии на кнопку меняются цвета у всех

Как такое реализовать на форме в шарпе?куда копать,хоть ключевых слов подскажите,а лучше примерчик
Изображения
Тип файла: jpg Пример.jpg (56.6 Кб, 14 просмотров)
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 15.09.2013, 18:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Копать отсюда: http://msdn.microsoft.com/en-us/libr...awpolygon.aspx
Точки полигона можно рассчитать полярными координатами в цикле.
Ну и отрисовывать на форме соответственно
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.09.2013, 16:37   #3
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Как координаты то шестиугольника подобрать,если я правильно понял то так делать
Код:
        Pen myPen = new Pen(Color.Red, 2);

        Point[] myPoints =
        {
            new Point(10, 10),
            new Point(150, 150),
            new Point(250, 250),
            new Point(30, 30),
            new Point(100, 100,
            new Point(160, 40),
        };

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.Clear(Color.White);
            g.DrawPolygon(myPen, myPoints);
}
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 16.09.2013, 19:16   #4
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Могу посоветовать следующее
1. Хранить координаты точек в отдельных массивах для удобства с ними в циклах. Сразу запомнить начальные координаты по Х.
2. Организовать 2 цикла. Во внутреннем цикле (по столбцам в изображении) рисовать полигоны и запускать еще один цикл, изменяющий координаты х всех точек. Навскидку MyPoints[j].Х += 40 (цифра взята из головы);
3. После внутреннего цикла во внешнем (по строкам изображения) увеличить координаты всех точек по Y; если строки имеют номера, установить координаты Х с некоторым смещением, иначе установить координаты Х в начальные положения.
Алгоритм может и не оптимален, но это первое что пришло в голову. Ну и смещения я бы подбирал методом проб.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вписанные шестиугольники на паскале. spz Помощь студентам 0 29.05.2011 14:20