Форум программистов, компьютерный форум CyberForum.ru

Как нарисовать график функции ? - C++

Восстановить пароль Регистрация
 
scherbakovss201
-6 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 471
01.05.2016, 22:08     Как нарисовать график функции ? #1
Как нарисовать график функции ?
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include "graphics.h"
#include <windows.h>
#include <string>
#include <math.h> 
#include <cstdlib> // содержит srand() и rand()
#include <time.h>
using namespace std;
 
//0 — черный
//1 — синий
//2 — зеленый
//3 — голубой
//4 — красный
//5 — лиловый
//6 — желтый
//7 — белый
//8 — серый
//9 — свело - синий
//A — светло - зеленый
//B — светло - голубой
//С — светло - красный
//E — светло - желтый
//F — ярко - белый
 
// функция генерации случайного числа из диапазона от range_min до range_max включительно
int rrand(int range_min, int range_max) {
    return rand() % (range_max - range_min + 1) + range_min;
}
const unsigned int ARRSIZE = 10;
const int min = 0;
const int max = 10;
int ar[ARRSIZE];
int br[ARRSIZE];//по ф-ле
double y;
//int a = 5;
int main()
{
    system("color 1F");  // Установка синего  фона-1 и белого цвета шрифта F.
    srand(static_cast<unsigned int>(time(NULL)));
    cout << endl;
    // инициализация массива случайными значениями из диапазона -//min..max
    for (int i = 0; i < ARRSIZE; i++) {
        ar[i] = rrand(min, max);
        y = 2 * sin(ar[i]);
        cout << "element masiva ar: " << i << "= " << ar[i] << endl;
        br[i] = y;
        cout << "element masiva br: " << i << "= " << br[i] << endl;
    }
    
 
 
    int gdriver = DETECT, gmode;
    initgraph(&gdriver, &gmode, "  ");
    int x = 30;
    int y = 30;
    for (int i = 0; i < ARRSIZE; i++) {
        putpixel(ar[i], br[i], RED);
    }
    putpixel(x, y, RED);
    outtextxy(200, 75, "hello");
    system("pause");
    closegraph();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2016, 22:08     Как нарисовать график функции ?
Посмотрите здесь:

Как нарисовать график? C++
C++ Как нарисовать график функции?
C++ Нарисовать график функции
C++ Как нарисовать график функции?
C++ Как нарисовать график в Excel через Visual Studio?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scherbakovss201
-6 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 471
01.05.2016, 22:38  [ТС]     Как нарисовать график функции ? #2
C++
1
2
3
    for (int i = 0; i < ARRSIZE; i++) {
        line(ar[i], br[i],ar[i+1],br[i+1]);
    }
подправил код.Только если минусовые координаты то графика не видно.
MDJH
5 / 5 / 3
Регистрация: 24.11.2015
Сообщений: 23
Записей в блоге: 1
01.05.2016, 22:50     Как нарисовать график функции ? #3
Тебе именно в консоле? Я пользуюсь visual c++ -> clr, там добавляешь в форму chart
и рисуешь сам граффик
C++
1
chart1->Series["Series1"]->Points->AddXY(x, y);
scherbakovss201
-6 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 471
02.05.2016, 01:06  [ТС]     Как нарисовать график функции ? #4
вы имеете ввиду консольное приложение clr?

Добавлено через 5 минут
chart1 идентификатор не найден.

Добавлено через 23 минуты
Мне нужен именно консольный график на с++ от visual studio

Добавлено через 50 минут
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include "graphics.h"
#include <windows.h>
#include <math.h> 
#include <cstdlib> // содержит srand() и rand()
#include <time.h>
using namespace std;
 
//0 — черный
//1 — синий
//2 — зеленый
//3 — голубой
//4 — красный
//5 — лиловый
//6 — желтый
//7 — белый
//8 — серый
//9 — свело - синий
//A — светло - зеленый
//B — светло - голубой
//С — светло - красный
//E — светло - желтый
//F — ярко - белый
 
// функция генерации случайного числа из диапазона от range_min до range_max включительно
int rrand(int range_min, int range_max) {
    return rand() % (range_max - range_min + 1) + range_min;
}
const unsigned int ARRSIZE = 10;
const int min = 0;
const int max = 100;
int a[ARRSIZE];
int x[ARRSIZE];
int b[ARRSIZE];
int br[ARRSIZE];//по ф-ле
double y;
//int a = 5;
 
int main()
{
    system("color 1F");  // Установка синего  фона-1 и белого цвета шрифта F.
    srand(static_cast<unsigned int>(time(NULL)));
    cout << endl;
    // инициализация массива случайными значениями из диапазона -//min..max
    for (int i = 0; i < ARRSIZE; i++) {
        a[i] = rrand(min, max);
        b[i] = rrand(min, max);
        //y = 2 * sin(ar[i]) * exp(ar[i]/a);
        //y = pow(ar[i], 2);
        int y= cos(a[i] * x[i] + b[i]) / sin(a[i] * x[i] + b[i]);//ф-ла графика
        cout << "element masiva a: " << i << "= " << a[i] << endl;
        cout << "element masiva x: " << i << "= " << x[i] << endl;
        cout << "element masiva b: " << i << "= " << b[i] << endl;
        br[i] = y;
        cout << "element masiva br: " << i << "= " << br[i] << endl;
    }
    POINT op;
    HWND hWnd = GetConsoleWindow(); //Получаем дескриптор окна консоли
    HDC hDC = GetDC(hWnd); //Получаем контекст устройства по полученному дескриптору
    SelectObject(hDC, GetStockObject(WHITE_PEN)); //Выбираем перо WHITE_PEN в контекст
    for (int i = 0; i < ARRSIZE; i++) {
    //MoveToEx(hDC, 50, 50, &op); //Ставим текущую точку в координаты 50,50
    //LineTo(hDC, 635, 320); //Рисуем линию из текущей точки в точку 100, 200
        MoveToEx(hDC, a[i], br[i], &op); //Ставим текущую точку в координаты 50,50
        LineTo(hDC, a[i+1], br[i+1]); //Рисуем линию из текущей точки в точку 100, 200
    }
    ReleaseDC(hWnd, hDC); //"Освобождаем" контекст  
    int gdriver = DETECT, gmode;
    initgraph(&gdriver, &gmode, "  ");
    int x = 30;
    int y = 30;
    for (int i = 0; i < ARRSIZE; i++) {
        setbkcolor(6); //цвет фона
        line(a[i], br[i], a[i + 1], br[i + 1]);
    }
    putpixel(x, y, RED);
    outtextxy(200, 75, "hello");
    system("pause");
    closegraph();
    return 0;
}
scherbakovss201
-6 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 471
02.05.2016, 20:11  [ТС]     Как нарисовать график функции ? #5
в экселе такой график получаеться
Как нарисовать график функции ?
Dragon6
4 / 4 / 3
Регистрация: 10.02.2011
Сообщений: 48
Завершенные тесты: 1
02.05.2016, 20:42     Как нарисовать график функции ? #6
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
1
for (int i = 0; i < ARRSIZE; i++) {
line(ar[i], br[i],ar[i+1],br[i+1]);
}
Тут может случиться (и случится) досадная беда
На моменте, когда i = (ARRSIZE-1), этот код попытается обратиться к ячейке массива i+1 и выйдет за границы массива
scherbakovss201
-6 / 1 / 0
Регистрация: 22.12.2015
Сообщений: 471
02.05.2016, 21:46  [ТС]     Как нарисовать график функции ? #7
и все таки как нарисовать график?
Под вин32 приложение график получился.А вот как тоже самое под консольку сделать.
Миниатюры
Как нарисовать график функции ?  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2016, 09:03     Как нарисовать график функции ?
Еще ссылки по теме:

Нарисовать график функции в отдельном окне C++
Как в Visual C++ 2012 нарисовать линию или график функции C++
Нарисовать график функции в консоли C++

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

Или воспользуйтесь поиском по форуму:
nmcf
4306 / 3727 / 1256
Регистрация: 14.04.2014
Сообщений: 14,599
03.05.2016, 09:03     Как нарисовать график функции ? #8
scherbakovss201, какой ты упрямый. Не предназначены консоли для этого - я уже говорил. График есть - пользуйся.
Yandex
Объявления
03.05.2016, 09:03     Как нарисовать график функции ?
Ответ Создать тему
Опции темы

Текущее время: 08:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru