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

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

26.05.2019, 23:08. Просмотров 480. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2019, 23:08
Ответы с готовыми решениями:

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

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

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

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

1
4650 / 3202 / 1365
Регистрация: 09.05.2015
Сообщений: 7,870
26.05.2019, 23:30 2
У вас как минимум метод Result не работает правильно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2019, 23:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.