Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
scherbakovss201
11 / 2 / 0
Регистрация: 22.12.2015
Сообщений: 1,013
#1

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

01.05.2016, 22:08. Просмотров 404. Ответов 7
Метки нет (Все метки)

Как нарисовать график функции ?
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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2016, 22:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как нарисовать график функции ? (C++):

Как нарисовать график функции? - C++
Привет всем. Учусь программированию всего пол года. И тут мне дают задание - написать программу для рисования графика функции y=x. Скажите,...

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

Как в Visual C++ 2012 нарисовать линию или график функции - C++
Я новичок в MVisual c++, только запустил ее и не знаю как создать событие для рисования. В QT все просто - создается событие для рисования ...

Нарисовать график функции - C++
Написать программу, которая выводит на экран точечный график функции y= √x. Диапазон изменения аргумента – от 0 до 5, шаг аргумента – 0.5....

Нарисовать график функции в консоли - C++
Добрый день. Задание следующее: протабулировать функции y=sin|x|,y=cos|x|. Нарисовать графики этих функций. Возникли следующие вопросы:что...

Нарисовать график функции в отдельном окне - C++
Есть у меня две double функции, которые принимают на вход х, а возвращают координату по y. мне нужно нарисовать график функции по точкам....

7
scherbakovss201
11 / 2 / 0
Регистрация: 22.12.2015
Сообщений: 1,013
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]);
    }
подправил код.Только если минусовые координаты то графика не видно.
0
MDJH
7 / 7 / 3
Регистрация: 24.11.2015
Сообщений: 30
Записей в блоге: 1
01.05.2016, 22:50 #3
Тебе именно в консоле? Я пользуюсь visual c++ -> clr, там добавляешь в форму chart
и рисуешь сам граффик
C++
1
chart1->Series["Series1"]->Points->AddXY(x, y);
0
scherbakovss201
11 / 2 / 0
Регистрация: 22.12.2015
Сообщений: 1,013
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;
}
0
scherbakovss201
11 / 2 / 0
Регистрация: 22.12.2015
Сообщений: 1,013
02.05.2016, 20:11  [ТС] #5
в экселе такой график получаеться
Как нарисовать график функции ?
0
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 и выйдет за границы массива
0
scherbakovss201
11 / 2 / 0
Регистрация: 22.12.2015
Сообщений: 1,013
02.05.2016, 21:46  [ТС] #7
и все таки как нарисовать график?
Под вин32 приложение график получился.А вот как тоже самое под консольку сделать.
0
Миниатюры
Как нарисовать график функции ?  
nmcf
5520 / 4830 / 1636
Регистрация: 14.04.2014
Сообщений: 19,609
03.05.2016, 09:03 #8
scherbakovss201, какой ты упрямый. Не предназначены консоли для этого - я уже говорил. График есть - пользуйся.
0
03.05.2016, 09:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2016, 09:03
Привет! Вот еще темы с ответами:

Как нарисовать график? - C++
У меня заданы функции: y1=a0+a1*x/exp(1/x) y2=a0+a1*log(sqrt(x)) и массив известных значений У a0,a1 известны, x- заданный массив ...

Как нарисовать график в Excel через Visual Studio? - C++
Здравствуйте! Помогите, пожалуйста, закончить задачу! Есть множество точек с координатами x и y. Как мне передать их в Excel и...

Как построить график функции - C++
Помогите пожалуйста построить график данной функции,функция будет указана в фото,дельта х,это шаг)

Как построить график функции x=5 - C++
Как построить график функции x=5; то есть это прямая паралельная оси y? Функции должна быть в предела (2;10) по оси у.


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

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

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