Форум программистов, компьютерный форум, киберфорум
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. Показов 20147. Ответов 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
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
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