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

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

26.05.2019, 23:08. Показов 801. Ответов 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,570
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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru