Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
joker33354
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 3
1

График функции

24.02.2013, 22:41. Просмотров 1272. Ответов 8
Метки нет (Все метки)

У меня есть прога, которая выводит график функции тангенса, помогите пожалуйста его переделать чтобы выводило график квадратичной функции f(x)=ax^2+bx+c.

C++ (Qt)
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#define _WIN32_WINNT 0x0501
#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstring>
#include <windows.h>
 
using namespace std;
 
const double Pi = 3.14159265;
 
BOOL Line(HDC hdc, int x1, int y1, int x2, int y2){
    MoveToEx(hdc, x1, y1, NULL); 
    return LineTo(hdc, x2, y2);
} 
 
string makeLine(int n){
    string str = "";
    for (int i = 0; i < n; i++){
        str+="-";
    }
    return str;
}
 
 
int main(){
    system ("color f0");
    cout << makeLine(19);
    printf("\n| x\t|y=tanh(x)|\n");
    cout << makeLine(19);   
    for (float x = -Pi+0.3f; x <= Pi; x+=1.0f) {        
        printf("\n|");
        if (x > 0)
            printf(" ");
        printf("%.2f\t|", x);
        if (tanh(x) > 0) 
            printf(" ");
        printf("%.2f\t  |", tanh(x));
            
    }
 
    //printf("\n| %.2f\t|%.2f\t  |", Pi, tanh(Pi)); 
    cout << "\n" << makeLine(19);
 
    int x = 400;
    int y = 200;
    double a = 1;
    int b = 2;
    
cout << '\t';
cout << '\t';
cout << '\t';
cout << '\t';
cout << '1';
cout << endl;
cout << endl;
cout << endl;
cout << endl;
cout << endl;
cout << endl;
cout << '\t';
cout << '\t';
cout << '\t';
cout << '\t';
cout << "          - 1";
cout << '\t';
cout << '0';
cout << "       1";
cout << endl;
cout << endl;
cout << endl;
cout << endl;
cout << endl;
cout << endl;
cout << endl;
cout << endl;
cout << endl;
 
 
cout << '\t';
cout << '\t';
cout << '\t';
cout << '\t';
cout << '\t';
cout << '\t';
cout << "-1";
    //srand ( time(NULL) );
    HWND hWnd = GetConsoleWindow();
    HDC hDc = GetDC(hWnd);
    
    COLORREF color = RGB(0,0,0);
    HPEN pen = CreatePen(PS_SOLID,1,color);
    SelectObject(hDc,pen);
    Line(hDc,x,0,x,2*y);
    Line(hDc,100,y,2*x,y);
 
    
    COLORREF c2 = color;
    SetPixel(hDc,x+1,2,color);
    SetPixel(hDc,x+2,3,color);
    SetPixel(hDc,x+3,4,color);
 
    SetPixel(hDc,x-1,2,color);
    SetPixel(hDc,x-2,3,color);
    SetPixel(hDc,x-3,4,color);
 
    SetPixel(hDc,2*x - 2,y - 1,color);
    SetPixel(hDc,2*x - 3,y - 2,color);
    SetPixel(hDc,2*x - 4,y - 3,color);
 
    SetPixel(hDc,2*x - 2,y + 1,color);
    SetPixel(hDc,2*x - 3,y + 2,color);
    SetPixel(hDc,2*x - 4,y + 3,color);
    for(int i = 100; i < 600; i+=50){
        Line(hDc,i,y-2,i,y+2);
    }
    for(int i = 0; i < y*2; i+=45){
        Line(hDc,x-2,i+19,x+2,i+19);
    }
    for (int i = 100; i < 800; i+= 4) {
        Line(hDc,i,110,i+2,110);
    }
    for (int i = 100; i < 800; i+= 4) {
        Line(hDc,i,290,i+2,290);
    }
    for(double x1 = -250; x1 < 250; x1++){
        double y1 = tanh(x1/100.0) * 90;
        SetPixel(hDc, x1 + x, y - y1, color);
    }
 
    int xD;
    cin >> xD;
    
    ReleaseDC(hWnd, hDc);
    return 0;   
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2013, 22:41
Ответы с готовыми решениями:

График функции в Visual C++
Что то в голову никак не придет, как построить график функции |sin(x)|...

График функции y=sin x
Помогите построить график функции y=sin x в Window Form.

График функции срествами GDI
y = x*sin3x/lnx x = y= Как построить график этой функции?

Не рисуется график функции (MFC)
Всем привет, не рисует график функции sin(x)/(x) хотя оси рисует нормально, не...

Таблица значений функции и ее график
Слава С++) Делаю курсовую в вижуале, приложение типа dialog based. Нужно...

8
-=ЮрА=-
Заблокирован
Автор FAQ
25.02.2013, 12:19 2
joker33354, лови
Построение графиков элементарных функций

В моем коде менять ничего не надо, просто поставь своё уравнение параболы в тело функции

Не по теме:

double f(double x){return cos(x);}

0
joker33354
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 3
25.02.2013, 14:39  [ТС] 3
А что это за диапазон мы вводим а и б, а n это количество точек ?
0
-=ЮрА=-
Заблокирован
Автор FAQ
25.02.2013, 15:11 4
Цитата Сообщение от joker33354 Посмотреть сообщение
А что это за диапазон мы вводим а и б, а n это количество точек ?
а и б - это диапазон на котором следует построить график, ибо построить график на всей числовой оси от -INF до +INF невозможно.
Цитата Сообщение от joker33354 Посмотреть сообщение
n это количество точек ?
- это количество равноудалённых друг от друга точек на оси абсцисс. Т.к числовой ряд от а до б также в общем случае можно детализировать с бесконечно малым шагом(что подразумевает бесконечное число точек), то нужно оговорить - какой шаг по абсциссе делать, этого мы и достигаем задавая число точек
double h = (b - a)/n;
0
JamesListener
8 / 8 / 1
Регистрация: 16.01.2013
Сообщений: 68
25.02.2013, 15:13 5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- да это количество равноудалённых друг от друга точек на оси абсчис, т.к числовой ряд от а до б также можно детализировать с бесконечно малым шагом, потому нужно оговорить - какой шаг по абсциссе делать, этого мы и достигаем задавая число точек
Вообще, обычно в таких случаях указывают не количество точек, а шаг, это более практично
0
-=ЮрА=-
25.02.2013, 15:15
  #6

Не по теме:

Цитата Сообщение от JamesListener Посмотреть сообщение
а шаг, это более практично
- прочти внимательно

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Т.к числовой ряд от а до б также в общем случае можно детализировать с бесконечно малым шагом(что подразумевает бесконечное число точек), то нужно оговорить - какой шаг по абсциссе делать, этого мы и достигаем задавая число точек
double h = (b - a)/n;
, для данной задачи удобно задать число точек

0
JamesListener
8 / 8 / 1
Регистрация: 16.01.2013
Сообщений: 68
25.02.2013, 15:36 7
-=ЮрА=-, эм... Честно - не вижу удобства. Если нам нужно строить график и точки в которых точно вычислены значения будут иметь абсциссы вроде 3,13452 из-за того деления - не очень удобны. По мне, так задать шаг, скажем 0.01 гораздо удобнее, чем прикидывать какое количество точек мне нужно на отрезке от некого a до некого b.
0
-=ЮрА=-
Заблокирован
Автор FAQ
25.02.2013, 15:40 8
JamesListener, всякой задаче своя реализация - в одних случаях удобно задать число точек, как скажем в этом, в другом вывести таблицу функции с шагом. Имеют место быть оба варианта.
0
joker33354
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 3
25.02.2013, 23:10  [ТС] 9
-=ЮрА=-, Ясно спасибо.
0
25.02.2013, 23:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2013, 23:10

Приложение которое строит график функции √x+x^2=10
Помогите пожалуйста,нужно составить приложение которое будет выводить график...

Построить график функции ax2+bx+c
Построить график функции ax2+bx+c. a, b и c вводятся с клавиатуры. Рядом с...

Найти производные функции и на одном графике построить график данной функции, график первой и второй производной.
найти производные первого и второго порядка функции и на одном графике...


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

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

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