Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/125: Рейтинг темы: голосов - 125, средняя оценка - 4.50
 Аватар для GreatTalker
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111

Построить график функции на заданном интервале

23.03.2011, 18:10. Показов 24882. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.Необходимо нарисовать график функции F(x)=sin(ln(x))-cos(ln(x))+2ln(x) на интервале[1;3],25 точек с шагом 0,083.Я просмотрел тему Построение графика функции,но только понял,как сделать координатные оси,а сам график у меня не получился
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 private void panel1_Paint(object sender, PaintEventArgs e)
        {
            float W = panel1.Width, H = panel1.Height;
            float halfW = W / 2, halfH = H / 2;
            e.Graphics.DrawLine(Pens.Black, halfW, 0, halfW, H);
            e.Graphics.DrawLine(Pens.Black, 0, halfH, W, halfH);
            float h=0.083F;
            float x = 1;
             for (int n = 0; n < 26; n++)
             {
              float   y =(float)Math.Sin(Math.Log(x)) - (float)Math.Cos(Math.Log(x)) + 2 * (float)Math.Log(x);
              x = x + 0;
              float xh = x + h;
                 e.Graphics.DrawLine(Pens.Red, x, y, xh,y);
                
             }
В чём моя ошибка?и можно с подробными комментариями,пожалуйста...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2011, 18:10
Ответы с готовыми решениями:

Построить график линейной функции на заданном интервале
Нужно построить график функции y=2x-5 на промежутке от Буду очень благодарен т.к сдам сессию) За ранее спасибо

Построить график двух функций в Chart и найти точки пресечения их на заданном интервале
Здравствуйте, столкнулся с затруднением,поставлена задача: построить график 2х функций cos(x) и sin(x) и найти точки пресечения их на...

Построить график функции на заданном интервале
2. Составить программу на языке Visual Basic Net, которая строит график функции при х от -3 до 3 с шагом 0,1. Добавлено через 10...

30
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 19
23.06.2011, 11:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DeKaN Посмотреть сообщение
почему бяка? по-моему стоится косинус..просто его надо растянуть, вот и всё
Так я и спрашиваю - как правильно его растянуть? Где подставить параметры, чтобы он строился красиво и правильно изменялся при изменении масштаба (в моем случае trackbar)?
Можете написать кусок кода, а то что-то притупило меня?
Тут загвоздка больше а математике.
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 19
07.07.2011, 09:12
Актуально!
0
 Аватар для DeKaN
36 / 36 / 8
Регистрация: 10.02.2010
Сообщений: 184
07.07.2011, 09:48
Во первых
C#
1
2
 float fy = area.Height / (ymax - ymin);
float fx = area.Width / (xmax - xmin);
1) определяем, по какой из осей график растянут больше:
C#
1
float koef = Math.Max(fx,fy);
2)Если график больше растянут по оси X, то рисуем, замостив по ширине,
Если же график больше растянут по оси Y, то рисуем, замостив по высоте:
C#
1
2
3
4
5
6
7
8
9
Graphics mgr = this.CreateGraphics();
for (float k = xmin; k <= xmax; k+=h)
{
   mgr.DrawLine(pf,
                         (k - xmin) * koef,
                         ((float)Math.Cos(k) - ymin) * koef,
                         (k + h - xmin) * koef
                         ((float)Math.Cos(k + h)- ymin) * koef);
}
Я не проверял....попробуй и покажи чтол получилось.
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 19
07.07.2011, 10:16
Ничего осмысленного не получилось - весь график слипся в самом верху. Скрин прилагаю.
И если ты говоришь, что в зависимости от того, по какой оси он растянут, он строится по-разному, что-то в коде я не вижу этого выбора.
Миниатюры
Построить график функции на заданном интервале  
0
 Аватар для DeKaN
36 / 36 / 8
Регистрация: 10.02.2010
Сообщений: 184
07.07.2011, 10:50
И если ты говоришь, что в зависимости от того, по какой оси он растянут, он строится по-разному, что-то в коде я не вижу этого выбора.
C#
1
float koef = Math.Max(fx,fy);
Скинь проект, я посмотрю.
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 19
07.07.2011, 11:06
Пожалуйста
Вложения
Тип файла: rar Laba12.rar (35.0 Кб, 75 просмотров)
0
 Аватар для DeKaN
36 / 36 / 8
Регистрация: 10.02.2010
Сообщений: 184
07.07.2011, 11:42
>Не по делу
Ну у тебя и корявый код)) В Form1.Designer.cs обработчики функций))


C#
1
2
3
4
5
6
7
8
9
10
11
 float koef = Math.Max(fx, fy);
                Graphics mgr = this.CreateGraphics();
                //MessageBox.Show(x.ToString());
                for (float k = x; k < area.Width; k += h)
                {
                    mgr.DrawLine(pf,
                                        (k - xmin) * koef,
                                        ((float)Math.Cos(k)-ymin) * fy,
                                        (k + h - xmin) * koef,
                                        ((float)Math.Cos(k + h)-ymin) * fy);
                }
Рисуется нормально, как ты и хотел....Но надо реализовать навигацию по по графику, а то её полностью не видно...

Добавлено через 1 минуту
А если поставить
C#
1
float koef = Math.Min(fx, fy);
То график замостится в область рисования
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 19
07.07.2011, 12:10
Ну у тебя и корявый код)) В Form1.Designer.cs обработчики функций))
Ну так учимся еще )) Уже перенес. Если честно, то не до красоты пока было.

Я понимаю, что все строится, но я же и пытаюсь добиться от кого-нибудь, как построить косинус пропорционально, т.е. чтобы он ВСЕГДА проходил через начало координат, координаты которого известны, и при масштабировании он не сдвигался, а опять же проходил через центр, а изменялся только угол наклона к оси. Ну, то есть как и должен вести себя график при масштабировании.
Мои матем. знания недостаточно тверды, чтобы реализовать это )) Какой коэффициент где поставить?

Также хочу отметить, что в нуле значение косинуса равно единице, а в проекте график в нуле лежит ниже оси абсцисс, что уже неправильно, т.е. график строится неверно относительно осей.
0
 Аватар для DeKaN
36 / 36 / 8
Регистрация: 10.02.2010
Сообщений: 184
07.07.2011, 12:21
Также хочу отметить, что в нуле значение косинуса равно единице, а в проекте график в нуле лежит ниже оси абсцисс, что уже неправильно, т.е. график строится неверно относительно осей.
\
Не знаю что там на счет осей, но xmin у тебя = 5...У тебя не строится косинус в точке x=0

Добавлено через 4 минуты
График слишком длинный, чтоб корректно его просматривать...продётся выводить только часть графика...
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 19
07.07.2011, 12:30
Цитата Сообщение от DeKaN Посмотреть сообщение
\
Не знаю что там на счет осей, но xmin у тебя = 5...У тебя не строится косинус в точке x=0

Добавлено через 4 минуты
График слишком длинный, чтоб корректно его просматривать...продётся выводить только часть графика...
Да в том-то и дело, что надо отталкиваться не от абсолютных значений точек графика, а от области рисования (area в моем случае). Т.е. ровно в центре области находится начало координат (inters в моем случае), и отталкиваясь от его координат, надо строить график. Точкой ноль я называю координату x точки inters. Логично будет построить его в сначала в одну сторону (x>0), а затем в другую (x<0), как мне кажется, чтобы добиться такой привязки, во всяком случае так я сделал масштабирование осей.
0
23 / 7 / 1
Регистрация: 12.11.2011
Сообщений: 38
18.10.2012, 11:45
поздновато наверное но все же:

http://jenyay.net/ZedGraph/Simple

там замечательный пример, и масштабируется все и смотреть конкретную область можно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2012, 11:45

Построить график функции на заданном интервале
Народ кто может сделайте, f(x)=sin(x)-a на интервале Добавлено через 2 часа 20 минут Люди кто знает напишите код

Построить график функции на заданном интервале
ИЗУЧЕНИЯ ПОСТРОЕНИЯ ГРАФИКОВ ФУНКЦИЙ на заданном интервале

Построить график функции 1+x*y на заданном интервале [0,1]
Нужна помощь!!!Паскаль

Построить график функции на заданном интервале
1. Очистить экран монитора и при необходимости установить желаемый цвет фона. 2. Выбрать размещения системы координат в соответствии с...

Построить график функции на заданном интервале
Построить график функции f(x,y)=y-(2*x)/y на заданном интервале


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru