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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.74
jhendrix
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 184
#1

график функции на OpenGL - C++

24.09.2012, 20:04. Просмотров 4676. Ответов 8
Метки нет (Все метки)

приведите простую прогу, как можно нарисовать график функции f(x) с координатными осями Oxy.
Применение библиотеки glut приветствуется.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2012, 20:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос график функции на OpenGL (C++):

Перевести с Pascal вычисление функции на заданном промежутке и построить график этой функции - C++
uses crt,graphABC; function y(x:real):real; begin if x<0 then y:=x*x else if x<=2.5 then y:=1+3*ln(abs(1-x*x*x)) else...

Написать блок-схему и программу вычисления функции на заданном промежутке и построить график этой функции - C++
написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и построить график этой функции.

Функции для клавишей в OpenGL - C++
Нашел в OpenGL 2 функции одна для клавиш движения...вторая использует ASCII...непойму почему разработчкики не обединили функции...вообще...

[C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc() - C++
Пишу программу для обхода бинаронго дерева поиска. Программа написана и кажется даже работает, но только в консоли. Решил выводить...

График функции - C++
Вывести на экран график функции в заданном интервале,с заданным шагом: y=-2x^3 ,с шагом 0,

График функции - C++
Нужно постоить график функции , выражение y=lg(x2)+3x , в которой используется табуляция A=1,B=4,H=0,4

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
24.09.2012, 20:33 #2
Для этого есть на форуме соответсвутсвующий раздел по графике, а имеено OpenGL и Dirext.
Скачайте любую книгу,например, OpenGL суперкнига 1,2,3,4 издание любое. И там всё очень прото описывается. График строится за пару минут.
0
jhendrix
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 184
24.09.2012, 21:03  [ТС] #3
я сейчас не изучаю OpenGL, мне нужно лишь простой пример проги как нужно нарисовать функцию
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
24.09.2012, 22:18 #4
Держи, но для этого есть другие разделы:
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
#pragma comment(lib,"opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glaux.lib")
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#include <cmath>
 
void CALLBACK resize(int width,int height)
{
    glViewport(0,0,width,height);
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    glOrtho(-11,11, -11,11, 2,12);   
    gluLookAt( 0,0,5, 0,0,0, 0,1,0 );
    glMatrixMode( GL_MODELVIEW );
}
void CALLBACK display(void)
{
    float x,y;
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glLineWidth(1.0f);
    glColor3f(1.0f,1.0f,1.0f);
    glBegin(GL_LINES);
    glColor3f(1.0f,0.0f,0.0f);
    //ось Y
        glVertex2f(0.0f,10.0f);
        glVertex2f(0.0f,-10.0f);
    //ось X
        glVertex2f(10.0f,0.0f);
        glVertex2f(-10.0f,0.0f);
    glEnd();
    glPointSize(2);
    glBegin(GL_POINTS);
    glColor3f(0.0f,1.0f,0.0f);
        for(int i=-10;i<=10;i++)
        {
            x=i;
            y=sin(x);
            glVertex2f(x,y); 
        }
    glEnd();
    auxSwapBuffers();
}
 
int main()
{       
    float pos[4] = {3,3,3,1};
    float dir[3] = {-1,-1,-1};
    GLfloat mat_specular[] = {1,1,1,1};
 
    auxInitPosition( 425, 100, 500, 500);
    auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE );
    auxInitWindow((LPCWSTR)"Graph");
    auxIdleFunc(display);
    auxReshapeFunc(resize);
 
    glEnable(GL_DEPTH_TEST);
    glEnable(GL_COLOR_MATERIAL);
 
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
 
    glLightfv(GL_LIGHT0, GL_POSITION, pos);
    glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
 
    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
    glMaterialf(GL_FRONT, GL_SHININESS, 128.0);
    // Enter your cod here
    auxMainLoop(display);
    return 0;
}
1
jhendrix
0 / 0 / 0
Регистрация: 23.02.2010
Сообщений: 184
25.09.2012, 06:15  [ТС] #5
твоя прога не работает, ругается на auxInitWindow((LPCWSTR)"Graph");
ты в какой среде работаешь ? я в основном на codeblocks
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
25.09.2012, 09:49 #6
Да какая разница в какой среде :-)
Приведенный код использует устаревшее расширение - GL Aux. Можешь скачать и собрать freeglut и попробовать с ним. Но под Windows нет никаких проблем самому создать окошко и контекст, на мой взгляд так удобнее получать именно то, что тебе нужно. Лично у меня глут отказывается создавать контекст версии выше 2.0, не смотря на то, что glGetIntegervi( GL_VERSION_MAJOR ) возвращает 4, а MINOR - 3 :-) Поэтому я написал для себя простенькую оберкут над окном и контекстом.
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
25.09.2012, 14:07 #7
Герц, слишком крутые вещи вы для него говорите.
jhendrix. Использую MVS 2010 Ultimate.Программа должна работать даже в простом консольном приложении.(у меня работаетточно). Написал с использованием glaux, по той простой причине, что её описание точно можно везде найти, т.к. она старая и примеров куча по ней. На glut переделать пару мин.
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
25.09.2012, 23:34 #8
freeglut то слишком крут? Ну, извини :-)
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
26.09.2012, 00:04 #9
Цитата Сообщение от Герц Посмотреть сообщение
freeglut то слишком крут? Ну, извини :-)
Просто , если он не знает разницы, и не собирается даже прониктнуться, то думаю сложно будет. Поэтому вполне сойдет и на GLaux. Переделать не долго, опять повторюсь, решать ТС.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 00:04
Привет! Вот еще темы с ответами:

График функции - C++
Привет всем, мужики, подскажите пожалуйста идею или алгоритм построения графика функции в си, у меня дан y=5/(x^2) xЕ(-5;5). Добавлено...

График функции - C++
В визуальном режиме написать программу, которая бы рисовала график функции y=a ln (bx + c) при различных значениях a, b, и c. График должен...

График функции на C++ - C++
Кто может напишите пожалуйста код C++ : начертить график функции , для примера для функции x^2. Чтобы прога вычисляла значения f(x) с...

График функции - C++
Построить график функции F(x)={ -x^2+3x+9 если x&lt;=3; x/(x^2+1, если x&gt;3. очень...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.09.2012, 00:04
Ответ Создать тему
Опции темы

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