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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2009, 22:41   #1
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию График функции

Расскажите пожалуйста как построить график линейной функции y=kx+b на языке с# ( а точнее как его отобразить с помощью этого языка)?
balamut вне форума Ответить с цитированием
Старый 09.04.2009, 16:55   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Вариант 1: кидаешь на форму какой-нить контрол(можно PictureBox) и в ручную рисуешь график при помощи класса Graphics, вроде так пишеться. Но это оченьнедобно т.к. самому придется писать маштабирование, рисование осей и т.д.

Код:
private void buttonDraw_Click(object sender, EventArgs e)
{
  pictureBox1.Paint += new PaintEventHandler(pictureBox1_Paint);
  pictureBox1.Invalidate();
}

 void pictureBox1_Paint(object sender, PaintEventArgs e)
{
  Pen blackPen = new Pen(Brushes.Black);
  e.Graphics.DrawLine(blackPen, 10, 10, 60, 60);
  throw new NotImplementedException();
 }
Вариант 2: используй сторонние компоненты для графиков
http://www.dundas.com/Gallery/Chart/...Group=Circular
http://www.componentart.com/charting/gallery.aspx
http://www.dotnetcharting.com/
http://netcontrols.org/nplot/wiki/
Hollander вне форума Ответить с цитированием
Старый 10.04.2009, 00:52   #3
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию

спасибо, вариант 2 только увы не для меня (пока еще не дорос до этого);
а 1 подходит, только походу возник еще один вопрос: а если например нужно было бы нарисовать не прямую линию, а например y=cosx , как тогда поступить? ( и вообще по рисованию в с# что на русском языке прочитать можно)
balamut вне форума Ответить с цитированием
Старый 10.04.2009, 15:46   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

По поводу инфы не видел чего-то конкретного, сам когда начинал разбираться все читал в MSDN. Но в итоге пришел ко 2 варианту(это намного проще).
А что нарисовать график, тебе нужно рисовать его по точкам, т.е. нажно делать DrawLine по двум точкам. На первом шаге не рисуешь, на втором - линию между 1 и 2 точкми, на 3-ем - 2 и 3 и т.д.
Hollander вне форума Ответить с цитированием
Старый 13.04.2009, 18:01   #5
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

Цитата:
( и вообще по рисованию в с# что на русском языке прочитать можно)
Советую эту книжку, там подробно рассматривается графика:

Петцолъд Ч. Программирование для Microsoft Windows на С#. В 2-х томах. Том 1
Gauss вне форума Ответить с цитированием
Старый 15.04.2009, 07:17   #6
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

You can do something like that :

Код:
//y = Cos(x)
using (Graphics g = this.CreateGraphics()) //Draw on Form
            {
                int height = 30; //Graphic Height
                int width = 5; //Graphic Width
                int[] xVals = new int[180]; // x values
                for (int j = 0; j < 180; j++)
                {
                    xVals[j] = j;
                }

                PointF[] points = new PointF[xVals.Length];
                for (int i = 0; i < xVals.Length; i++)
                {
                    float y = (float)Math.Cos(xVals[i]);
                    points[i] = new PointF(xVals[i] * width, y * height);
                }
                g.DrawCurve(new Pen(new SolidBrush(Color.Red)), points);
            }
akasex вне форума Ответить с цитированием
Старый 16.04.2009, 03:59   #7
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию

спасибо всем график у меня получилось нарисовать(хотя заняло это у меня почти неделю: просто построить график в принципе проблем не вызвало, но вот рисование системы координат и привязывание моего графика к ней - вот тут намучался)

как мне теперь сохранить его в файлы различных форматов(график просто нарисован на форме и как эту область сохранить в файл)
я написал простейшую прогу но она не сохраняет ничего

private void button3_Click(object sender, EventArgs e)
{
// Установка начальной папки.
saveFileDialog1.InitialDirectory = "C:\tmp";
// Задание возможных расширений для файла.
saveFileDialog1.Filter = "jpeg |*.jpeg; |bmp| *.bmp; |tiff|*.tiff; |All files|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// Код по сохранению...
string fileName = saveFileDialog1.FileName;
// ...
}
balamut вне форума Ответить с цитированием
Старый 16.04.2009, 08:28   #8
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

Код:
using (Graphics g = this.CreateGraphics())
            {
                Bitmap mypic = new Bitmap(this.Width, this.Height);
                g.DrawImageUnscaled(mypic, new Point(0, 0));
                mypic.Save("mypic.jpeg",    
                                System.Drawing.Imaging.ImageFormat.Jpeg); 
            }
akasex вне форума Ответить с цитированием
Старый 16.04.2009, 20:45   #9
balamut
Пользователь
 
Регистрация: 05.02.2009
Сообщений: 35
По умолчанию

to akasex:
увы сохранило только квадрат малевича, а не график
balamut вне форума Ответить с цитированием
Старый 17.04.2009, 07:49   #10
akasex
Форумчанин Подтвердите свой е-майл
 
Аватар для akasex
 
Регистрация: 31.03.2008
Сообщений: 179
По умолчанию

which control are you using to draw image ???

can you post your drawing procedure code here ???

Последний раз редактировалось akasex; 17.04.2009 в 07:50. Причина: added ?
akasex вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построить график функции Horknee Паскаль, Turbo Pascal, PascalABC.NET 15 23.09.2008 09:50
График функции Леха Общие вопросы Delphi 18 16.04.2007 20:50