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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 00:38   #1
AXE*
 
Регистрация: 25.01.2012
Сообщений: 7
Вопрос Матрица,DrawCurve, вывод

Доброе время суток, есть такая проблема. С помощью DataGridView я должен ввести матрицу - не проблема, но как считать ёё? и нарисовать на графике?
нужно использовать DrawCurve? но как?
Спасибо за помощь
AXE* вне форума Ответить с цитированием
Старый 26.01.2012, 09:06   #2
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Я так понимаю что в ДатаГрид у тебя две колонки а количество строк соответствует точкам. Тогда можно делать так.
Код:
            List<Point> MyPoints = new List<Point>();//Список точек которые будем считывать из таблицы
            foreach(DataGridViewRow Row  in dataGridView1.Rows)//Проходим по всем строкам
                if ((Row.Cells[0].Value != null)||(Row.Cells[1].Value != null))//Проверяем чтобы в ячейках было значение
                    MyPoints.Add(new Point(int.Parse(Row.Cells[0].Value.ToString()), int.Parse(Row.Cells[1].Value.ToString())));//Из первого столбца берем значения X из второго Y (преобразуем их к типу int)

            Bitmap Picture = new Bitmap(200, 200);//Сздаем изображене где будем рисовать кривую. Размер сам подберешь, но по сути его надо делать как максимальные значения X и Y
            using (Graphics gr = Graphics.FromImage(Picture))
            {
                gr.FillRectangle(Brushes.White, 0, 0, Picture.Width, Picture.Height);  // Очищаем экран
                gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;//Задаем режим рисования
                gr.DrawCurve(new Pen(Color.Black), MyPoints.ToArray());//Создание кривой по точка. тут еще создается перо которым будет рисоваться кривая и преобразовывается список в масив.
                pictureBox1.Image = Picture;//Выводим изображение в пикчербокс. Только координаты получатся перепутанными, возможно надо при считывании X и Y поменять местами.
            }
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 26.01.2012, 23:49   #3
AXE*
 
Регистрация: 25.01.2012
Сообщений: 7
По умолчанию

спасибо, а как подключить мне 3Д рисунки? если матрица 3 на 3?
и можна не через пикчербокс, а через panel вывести матрицу?
AXE* вне форума Ответить с цитированием
Старый 07.02.2012, 02:25   #4
AXE*
 
Регистрация: 25.01.2012
Сообщений: 7
По умолчанию

Прошу помочь
Код:
 foreach (DataGridViewRow Row in Matrix1.Rows)
            {
                if ((Row.Cells[0].Value != null) || (Row.Cells[1].Value != null))//Проверяем чтобы в ячейках было значение
                    MyPoints.Add(new Point(int.Parse(Row.Cells[0].Value.ToString()) * (panel1.Size.Width) / 20 + 271, int.Parse(Row.Cells[1].Value.ToString()) * (panel1.Size.Height) / 20 + 218));
            }
есть такой код, выводит с матрицы график по точках, через Полигон.
Но Рисует не правильно, а зеркально наоборот. Прошу помогите
AXE* вне форума Ответить с цитированием
Старый 07.02.2012, 09:50   #5
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

постом выше
Цитата:
//Выводим изображение в пикчербокс. Только координаты получатся перепутанными, возможно надо при считывании X и Y поменять местами.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 07.02.2012, 16:06   #6
AXE*
 
Регистрация: 25.01.2012
Сообщений: 7
По умолчанию

Спасибо, видел) но как поменять при считывании местами X и Y?

Последний раз редактировалось AXE*; 07.02.2012 в 16:39.
AXE* вне форума Ответить с цитированием
Старый 07.02.2012, 20:08   #7
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

вам надо поменять индексы местами в правильном месте (0 на 1 и 1 на 0)
в котором я думая вы сможете найти.
rUs_LAN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрица, и вывод из\в фаил mego4el Помощь студентам 9 14.12.2010 22:11
матрица и ее ввод\вывод из фаила mego4el Помощь студентам 1 03.12.2010 21:41
разобраться с DrawCurve Eros Общие вопросы C/C++ 0 17.05.2010 09:11
Матрица(математика) вывод елементов из картинки hottabych23 Фриланс 8 09.03.2010 10:24
Класс матрица, вывод результатов на экран Student_911 Помощь студентам 0 03.10.2009 20:55