Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 26.05.2019
Сообщений: 1

Проблема в построении графика посредством Graphics

26.05.2019, 23:08. Показов 813. Ответов 1

Студворк — интернет-сервис помощи студентам
Необходимо построить график по формуле, которая будет указана в textbox. Она может быть произвольной формы, как простая (x*2), так и сложная (2-4x2+5). Вроде бы примерно представляю, что делать нужно, нашел и отредачил хороший, как показалось, парсер для формулы, но столкнулся с проблемой. График выходит линейный, прямая линия в нижней части окна, что бы я ни вводил в textbox, какая бы формула там ни оказалась. В чем проблема? Уже весь код мысленно прошел, а в чем дело понять не могу...
Код тут:
Кликните здесь для просмотра всего текста

namespace Графики_ужас
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}





public double Result(float x2)
{
string form = textBox2.Text;
string[] opand = form.Split('+', '-', '*', '/', '^');
string[] opats = form.Split('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'x');
for (int i = 0; i < opand.Length; i++)
{
if (opand[i] == "x")
{
opand[i] = Convert.ToString(Convert.ToInt32(x2));
}
}
int[] opandp = opand.Select(s => int.Parse(s)).ToArray();
double resulted = 0;
switch (opats[0])
{
case "*": resulted = opandp[0] * opandp[1]; break;
case "/": resulted = opandp[0] / opandp[1]; break;
case "^": resulted = Math.Pow(Convert.ToDouble(opandp[0]), Convert.ToDouble(opandp[1])); break;
}
return resulted;
}

private void button2_Click(object sender, EventArgs e)
{
Graphics graphs = pictureBox2.CreateGraphics();
Pen myPen = new Pen(Color.Black, Width = 3);
int numInt = 100;
float xmin = 0, xmax = 2, ymin = 0, ymax = 4;
float xstep = (xmax - xmin) / numInt;
float kx = pictureBox2.Width / xmax, ky = pictureBox2.Height / ymax;
float x1 = xmin, y1 = x1 * x1, x2, y2;
for (int i = 0; i < numInt; i++)
{
x2 = x1 + xstep;
y2 = Convert.ToSingle(Result(x2));
graphs.DrawLine(myPen, kx * x1, pictureBox2.Height - ky * y1, kx * x2, pictureBox2.Height - ky * y2);
x1 = x2;
y1 = y2;
}

}
}
}

Чего не хватает?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2019, 23:08
Ответы с готовыми решениями:

Проблема в построении графика в MathLab
У меня есть задача: Рассчитать и построить зависимость от времени t напряжения U2(t) на выходе электрической цепи. Варианты схем...

Помощь в построении графика
Очень давно не работала в Mathcad и вдруг резко понадобилось Проблема в построении графика..Может кто-то увидит в чем ошибка. Задача...

Ошибка в построении графика
Доброго времени суток господа знатоки.Пытаюсь построить график но он выдает ошибку &quot;Все вычисления привели или к ошибке или к...

1
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
26.05.2019, 23:30
У вас как минимум метод Result не работает правильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2019, 23:30
Помогаю со студенческими работами здесь

Проблемы в построении графика
Подскажите в чем проблема, не строится последний график

Трудность в построении графика
Ребят я недавно начал юзать Matcad и вот я вбил график и не могу понять почему он неправильно построился.Он определен в точке где...

Ошибка в построении графика
Помгите разобраться в ошибке. Матлаб не выводит график, т.е выводит пустое окно... f=650e6; c=3e8; lenght=c/f; a=2; ...

Ошибка в построении графика
необходимо построить график. на скрине из книги то, что должно примерно получиться, на другом соответственно мои попытки это...

Ошибка в построении графика
Добрый день! У меня есть небольшая программка, в которой в цикле вычисляются значения Mr и Mt,записываются в массивы, затем...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru