Страницы

Поиск по вопросам

пятница, 1 февраля 2019 г.

Построить график c#

Добрый день, подскажите пожалуйста, как построить график многочлена : сам многочлен p(x)=An*X^n + An-1*X^n-1+...+A1X+A0
int[] array= new int[10]; int i, num, power; float x;
num=4; x=1;
array[0] = 3; array[1] = -5; array[2] = 6; array[3] = 8; array[4] = -9;
power = num;
double k = 0;
for (i = 0; i <= num; i++) { k += Math.Pow(x, power--) * array[i]; // richTextBox1.AppendText(Convert.ToString(k) +"
");
}
как щас построить график ?


Ответ

Для начала вам будет достаточно стандартного класса Chart, хотя есть и сторонние компоненты для построения красивых графиков, но мне кажется, что сначала лучше разобраться со стандартным контролом. В документации на MSDN есть довольно подробный Tutorial. Основные моменты покажу в коде, подробности в официальной документации.
class ChartForm : Form { public ChartForm() { //создаем элемент Chart Chart myChart = new Chart(); //кладем его на форму и растягиваем на все окно. myChart.Parent = this; myChart.Dock = DockStyle.Fill; //добавляем в Chart область для рисования графиков, их может быть //много, поэтому даем ей имя. myChart.ChartAreas.Add(new ChartArea("Math functions")); //Создаем и настраиваем набор точек для рисования графика, в том //не забыв указать имя области на которой хотим отобразить этот //набор точек. Series mySeriesOfPoint = new Series("Sinus"); mySeriesOfPoint.ChartType = SeriesChartType.Line; mySeriesOfPoint.ChartArea = "Math functions"; for (double x = -Math.PI; x <= Math.PI; x += Math.PI / 10.0) { mySeriesOfPoint.Points.AddXY(x, Math.Sin(x)); } //Добавляем созданный набор точек в Chart myChart.Series.Add(mySeriesOfPoint); } }
Вот собственно минимум кода для рисования графика на форме. Здесь не приведены ни настройки осей координат и сетки, ни другие графические рюшечки которые поддерживает данный контрол, т.к. примеры применения практически всех возможностей этого контрола есть в официальной документации, ссылка выше.
Дополнение:
Вам нужно вычисление многочлена вынести в отдельную функцию. Это можно сделать например так
double Polynom(double x, double[] coefficients) { double y = 0.0; double currentX = 1.0; for(int i = 0; iИ подставить ее вместо Math.Sin в моем примере.

Комментариев нет:

Отправить комментарий