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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2010, 21:11   #1
_Studentka_
Пользователь
 
Аватар для _Studentka_
 
Регистрация: 03.11.2009
Сообщений: 24
По умолчанию Рисование функций на форме

Нужно нарисовать 2 функции график прямо на форме. Функции большие, но алгоритм рисования несложный, но у меня получается, что график не четкий, а слишком размытый и длится полностью на всю форму...Масштаб какой-то слишком крупный. Я уже экспериментировала, но все равно не получается. График просто громадный и на всю форму, пересекает все радиобатоны, которые есть у меня на форме.

Вот мой код:

Код:
private void DrawingMyfigure()
        {
            double x = -17, y = 0, y1 = 0;
            Graphics g = base.CreateGraphics();
            g.Clear(BackColor);
            Point preview,preview1, now, now1;
            preview = new Point();
            now = new Point();
            now1 = new Point();
            preview1 = new Point();
            for (float i = -17; i < 17 /*&& i < number*/; i += (float)0.04)
            {
                i = (float)Math.Floor((double)i * 100) / 100;
                x = i ; 
                y = -1.1100319 * Math.Pow(10, -8) * Math.Pow(i, 9) + 4.2010685 * Math.Pow(10, -8) *
                Math.Pow(i, 8) + 4.8204417 * Math.Pow(10, -6) * Math.Pow(i, 7)-
                1.9123759 * Math.Pow(10, -5) * Math.Pow(i, 6) - 6.0569249 * Math.Pow(10, -4) * Math.Pow(i, 5) +
                0.0026407 * Math.Pow(i, 4) + 0.0193816 * Math.Pow(i, 3) -
                0.0956714 * Math.Pow(i, 2) + 1.6439131 * i + 1.0095675;
                y1 = -1.665949 * i + 1.3004023;
                now = new Point(Convert.ToInt32(300 + x * 20), Convert.ToInt32(150 + y * 10));
                now1 = new Point(Convert.ToInt32(300 + x * 20), Convert.ToInt32(150 + y1 * 10));


                if (i != -17)
                {
                    g.DrawLine(new Pen(color), preview, now);
                    g.DrawLine(new Pen(color), preview1, now1);
                }
                preview = now;
                preview1 = now1;
            }
        }
Помогите, пожалуйста. Что у меня не так?
_Studentka_ вне форума Ответить с цитированием
Старый 08.04.2010, 20:19   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Цитата:
слишком размытый и длится полностью на всю форму...Масштаб какой-то слишком крупный.
Что значит слишком размытый? большое растояние между точками?(уменьшети шаг, изменити функцию...)
Ну все остальные параметры задаете вы: какой длинны, какое отклонение и тд...
Мы дажеть не знаем, что должно получиться)))
dampirik вне форума Ответить с цитированием
Старый 09.04.2010, 22:49   #3
Teksa
Пользователь
 
Регистрация: 24.08.2007
Сообщений: 88
По умолчанию

now = new Point(Convert.ToInt32(300 + x * 20), Convert.ToInt32(150 + y * 10));

если нужно сделать график покомпактней - уменьшить коэффициенты рядом с икс и игрек ( 20 и 10), слишком размытый - возможно слишком растянутый? коэффициент при х в два раза больше коэффициента при игрек... и у меня закончилась кофейная гуща
Teksa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рисование функций в имадже dima 1989 Общие вопросы Delphi 2 27.03.2010 15:33
рисование функций в имэйдже dima 1989 Помощь студентам 0 27.03.2010 13:42
Рисование на форме. (*_*) Общие вопросы C/C++ 1 22.09.2009 13:06
рисование на форме Kostua Помощь студентам 2 26.07.2008 16:24
Рисование на форме niva622 Помощь студентам 4 18.01.2007 09:34