Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/92: Рейтинг темы: голосов - 92, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 30

Как нарисовать простейший график функции f(x) в Chart?

01.03.2015, 00:38. Показов 20026. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как нарисовать простейший график функции f(x) в Chart (Visual Studio 2013)
Помогите!

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "TFunction.h"
#include "cmath"
 
 
TFunction::TFunction()
{
    _volue = 0;
}
 
TFunction::TFunction(double x)
{
    _volue = pow(x, 4)-7*(pow(x,2)+10);
}
 
TFunction::~TFunction()
{
}
 
double TFunction::getVolue(){
    return _volue;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2015, 00:38
Ответы с готовыми решениями:

нарисовать график функции с Chart
Здравствуйте.Помогите пожалуйста.Мне нужно нарисовать график функции f(x)=0.1*x*x-x*Ln(x) с помощью Chart.Спасибо большое:-*

Как в chart можно нарисовать график
Привет всем! Подскажите как в chart можно сделать внешний вид графика как на рис.1? Как рисовать график знаю,интересует внешний вид! ...

Нарисовать простой график по точкам в Chart
Где у меня был супер мануал по этому контролу. Там можно самые разные диаграммы рисовать. Но к сожалению потерял его. Теперь в инете...

3
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9670 / 4823 / 762
Регистрация: 17.04.2012
Сообщений: 9,661
Записей в блоге: 14
01.03.2015, 15:59
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Позволю себе немного изменить ваш класс, чтобы он был в стиле .NET
Сделаем из него структуру (в смысле .NET, не в смысле чистого C++)
C++
1
2
3
4
5
6
7
8
9
10
11
private value class MyFunction
{
private:
    double _value = 0;
public:
    double getValue(double x);
};
 
double MyFunction::getValue(double x) {
    return Math::Pow(x, 4.0) - 7.0 * (Math::Pow(x, 2.0) + 10.0);
};
Данные добавим в обработчике события Load формы. Можно повесить и на кнопку и ещё на что угодно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private: System::Void MyForm_Load(System::Object^  sender, System::EventArgs^  e) {
    chart1->Series->Clear();
    Series^ series1 = gcnew Series(L"x^4 - 7(x^2 + 10)");
    // синяя линия
    series1->Color = Color::Blue;
    series1->IsVisibleInLegend = true;
    series1->IsXValueIndexed = true;
    // линия, а не столбики
    series1->ChartType = SeriesChartType::Line;
    // добавляем линию к контролу
    chart1->Series->Add(series1);
    // добавляем значения
    MyFunction^ func = gcnew MyFunction();
    for (double i = 0; i < 10; i++) {
        series1->Points->AddXY(i, func->getValue(i));
    }
}
Весь код
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#pragma once
 
namespace WinForm {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    using namespace System::Windows::Forms::DataVisualization::Charting;
 
    private value class MyFunction
    {
    private:
        double _value = 0;
    public:
        double getValue(double x);
    };
 
    double MyFunction::getValue(double x) {
        return Math::Pow(x, 4.0) - 7.0 * (Math::Pow(x, 2.0) + 10.0);
    };
 
    /// <summary>
    /// Summary for MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void) {
            InitializeComponent();
        }
 
    protected:
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        ~MyForm() {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::DataVisualization::Charting::Chart^  chart1;
    protected:
 
    private:
        System::ComponentModel::IContainer^  components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        void InitializeComponent(void)
        {
            System::Windows::Forms::DataVisualization::Charting::ChartArea^  chartArea1 = (gcnew System::Windows::Forms::DataVisualization::Charting::ChartArea());
            System::Windows::Forms::DataVisualization::Charting::Legend^  legend1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Legend());
            System::Windows::Forms::DataVisualization::Charting::Series^  series1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Series());
            this->chart1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Chart());
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->chart1))->BeginInit();
            this->SuspendLayout();
            // 
            // chart1
            // 
            chartArea1->Name = L"ChartArea1";
            this->chart1->ChartAreas->Add(chartArea1);
            legend1->Name = L"Legend1";
            this->chart1->Legends->Add(legend1);
            this->chart1->Location = System::Drawing::Point(13, 13);
            this->chart1->Name = L"chart1";
            series1->ChartArea = L"ChartArea1";
            series1->Legend = L"Legend1";
            series1->Name = L"Series1";
            this->chart1->Series->Add(series1);
            this->chart1->Size = System::Drawing::Size(408, 393);
            this->chart1->TabIndex = 0;
            this->chart1->Text = L"chart1";
            // 
            // MyForm
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(433, 418);
            this->Controls->Add(this->chart1);
            this->Name = L"MyForm";
            this->Text = L"MyForm";
            this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->chart1))->EndInit();
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void MyForm_Load(System::Object^  sender, System::EventArgs^  e) {
        chart1->Series->Clear();
        Series^ series1 = gcnew Series(L"x^4 - 7(x^2 + 10)");
        // синяя линия
        series1->Color = Color::Blue;
        series1->IsVisibleInLegend = true;
        series1->IsXValueIndexed = true;
        // линия, а не столбики
        series1->ChartType = SeriesChartType::Line;
        // добавляем линию к контролу
        chart1->Series->Add(series1);
        // добавляем значения
        MyFunction^ func = gcnew MyFunction();
        for (double i = 0; i < 10; i++) {
            series1->Points->AddXY(i, func->getValue(i));
        }
    }
    };
}

3
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 30
01.03.2015, 16:43  [ТС]
СПАСИИИИБООО!!!
0
0 / 0 / 0
Регистрация: 19.06.2019
Сообщений: 3
19.06.2019, 23:19
tezaurismosis, Подскажите пожалуйста, как добавить на график оси координат
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.06.2019, 23:19
Помогаю со студенческими работами здесь

Нарисовать график в Chart по данным из Stringgrid
подскажите ,пожалуйста, как можно сделать график из таблицы стрингрида (чтобы по оси x были названия каждого столбца (то есть страны) по...

Как нарисовать график функции, в кот. по оси ординат и абсцисс функции двух переменных
Доброго времени суток! Мне нужно проанализировать связь двух функций, наглядно это проще сделать изобразив графики функции F1(x,y) и...

Как построить график функции к нелинейным уравнениям с помощью элемента управления Chart и с использованием делегатов?
У меня задание: Создать приложение позволяющее решать методом Ньютона и методом половинного деления нелинейные уравнения, а также выполнять...

Как нарисовать график функции?
Здравствуйте. Приведите пожалуйста пример кода на С# Windows Form который рисует простой график функции, например x^2 или log(x).

Как нарисовать график функции?
Edit1-&gt;Text == &quot;x*x&quot;; int x; Как нарисовать график функции int y = Edit1-&gt;Text;


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru