Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
4 / 4 / 1
Регистрация: 17.12.2017
Сообщений: 120
1

Посоветуйте библиотеку для рисования графиков

25.05.2019, 09:54. Показов 2967. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,посоветуйте библиотеки или иное,чтоб с помощью них можно было реализовать автоматическое рисование графика,как например:
Миниатюры
Посоветуйте библиотеку для рисования графиков  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2019, 09:54
Ответы с готовыми решениями:

Ищу простую и документированную библиотеку для рисования простых(2D, линейных) графиков
Собственно весь вопрос в название темы. Ищу простую и документированную библиотеку для рисования...

Посоветуйте хорошую библиотеку для работы с zip-архивами
Здравствуйте. Быть может кто-то посоветует что-то хорошее? В гугл не посылать, пол интернета...

Посоветуйте библиотеку для вытаскивания текста и картинок из PDF
Посоветуйте библиотеку для вытаскивания текста и картинок из PDF, а то везде попадаются только для...

Запустить скрипт, что использует библиотеку для рисования графиков
В Visual Studio написал сайт и на нем необходимо нарисовать график, для этого использую библиотеку...

1
5275 / 2873 / 481
Регистрация: 05.10.2013
Сообщений: 7,632
Записей в блоге: 154
27.05.2019, 20:11 2
Лучший ответ Сообщение было отмечено DieSeele как решение

Решение

FreeGLUT + Legacy/deprecated OpenGL 1.1. Docs: https://docs.microsoft.com/en-... ngl/opengl

Visual Studio 2015 Project: Sin_FreeGlutOpenGL11Cpp.zip
Release: Sin_x86_EXE.zip

Settings

1.
Configuration: All Configurations
Platforms: All Platforms

C/C++ -> Genaral -> Additional Include Directories:
$(SolutionDir)Libs\freeglut-3.0.0-2\include

Linker -> Input -> Additional Dependencies
freeglut.lib

2.
Configuration: All Configurations
Platforms: Win32

Linker -> General -> Additional Library Directories:
$(SolutionDir)Libs\freeglut-3.0.0-2\lib\Win32

Build Events -> Post-Build Event
xcopy /y /d "$(SolutionDir)Libs\freeglut-3.0.0-2\lib\Win32\freeglut.dll" "$(OutDir)"

3.
Configuration: All Configurations
Platforms: x64

Linker -> General -> Additional Library Directories:
$(SolutionDir)Libs\freeglut-3.0.0-2\lib\Win64

Build Events -> Post-Build Event
xcopy /y /d "$(SolutionDir)Libs\freeglut-3.0.0-2\lib\Win64\freeglut.dll" "$(OutDir)"


main.cpp

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
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
138
139
140
141
142
143
#include <GL/freeglut.h>
#include <string>
 
#define _USE_MATH_DEFINES
#include <math.h>
 
// Hide the console
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
 
const float M_PI_F = (float)M_PI;
const float g_fieldWidth = 4 * M_PI_F;
const float g_fieldHeight = 4;
const float g_halfFieldWidth = g_fieldWidth / 2;
const float g_halfFieldHeight = g_fieldHeight / 2;
const float g_onePercentOfHalfWidth = (float)g_halfFieldWidth / 100;
const float g_onePercentOfHalfHeight = (float)g_halfFieldHeight / 100;
 
void drawText(float x, float y, std::string text, float r, float g, float b)
{
    glColor3f(r, g, b);
    glRasterPos2f(x, y);
    glutBitmapString(GLUT_BITMAP_8_BY_13, (const unsigned char*)text.c_str());
}
 
void drawLine(
    float x0, float y0, float x1, float y1,
    float r, float g, float b)
{
    glColor3f(r, g, b);
    glBegin(GL_LINES);
    {
        glVertex2f(x0, y0);
        glVertex2f(x1, y1);
    }
    glEnd();
}
 
void drawSin(float r, float g, float b)
{
    const float step = (float)M_PI / 10;
 
    float xPrev = -2 * (float)M_PI;
 
    for (size_t i = 0; i < 40; i++)
    {
        float x0 = xPrev;
        float y0 = sin(x0);
 
        float x1 = x0 + step;
        float y1 = sin(x1);
        xPrev = x1;
 
        drawLine(x0, y0, x1, y1, r, g, b);
    }
}
 
void drawCoordinates(float r, float g, float b)
{
    float halfOfLengthOfLine = 4;
 
    // 1
    drawText(-14 * g_onePercentOfHalfWidth, g_halfFieldHeight / 2, "1", r, g, b);
    drawLine(
        -halfOfLengthOfLine * g_onePercentOfHalfWidth,
        g_halfFieldHeight / 2,
        halfOfLengthOfLine * g_onePercentOfHalfWidth,
        g_halfFieldHeight / 2, r, g, b);
 
    // -1
    drawText(-18 * g_onePercentOfHalfWidth, -g_halfFieldHeight / 2, "-1", r, g, b);
    drawLine(
        -halfOfLengthOfLine * g_onePercentOfHalfWidth,
        -g_halfFieldHeight / 2, 2 * g_onePercentOfHalfWidth,
        -g_halfFieldHeight / 2, r, g, b);
 
    // Pi
    drawText(
        M_PI_F - 5 * g_onePercentOfHalfWidth,
        7 * g_onePercentOfHalfHeight, "Pi", r, g, b);
    drawLine(
        M_PI_F, -halfOfLengthOfLine * g_onePercentOfHalfHeight,
        M_PI_F, halfOfLengthOfLine * g_onePercentOfHalfHeight,
        r, g, b);
 
    // -Pi
    drawText(
        -M_PI_F - 7 * g_onePercentOfHalfWidth,
        7 * g_onePercentOfHalfHeight, "-Pi", r, g, b);
    drawLine(
        -M_PI_F, -halfOfLengthOfLine * g_onePercentOfHalfHeight,
        -M_PI_F, halfOfLengthOfLine * g_onePercentOfHalfHeight,
        r, g, b);
}
 
void draw()
{
    glClear(GL_COLOR_BUFFER_BIT);
    drawText(
        g_halfFieldWidth - 80 * g_onePercentOfHalfWidth,
        g_halfFieldHeight - 20 * g_onePercentOfHalfHeight,
        "y = Sin(x)", 1, 1, 1);
 
    // X
    drawLine(-g_halfFieldWidth, 0, g_halfFieldWidth, 0, 1, 0, 0);
    drawText(
        g_halfFieldWidth - 10 * g_onePercentOfHalfWidth,
        -10 * g_onePercentOfHalfHeight, "X", 1, 0, 0);
 
    // Y
    drawLine(0, -g_halfFieldHeight, 0, g_halfFieldHeight, 0, 1, 0);
    drawText(
        -10 * g_onePercentOfHalfWidth,
        g_halfFieldHeight - 15 * g_onePercentOfHalfHeight, "Y", 0, 1, 0);
 
    drawCoordinates(1, 1, 1);
 
    drawSin(0.5, 0.5, 1);
 
    glutSwapBuffers();
}
 
void setup2DGraphics(double width, double height)
{
    double halfWidth = width / 2;
    double halfHeight = height / 2;
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-halfWidth, halfWidth, -halfHeight, halfHeight, 100, -100);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(256, 256);
    glutCreateWindow("Sin");
    setup2DGraphics(g_fieldWidth, g_fieldHeight);
    glutDisplayFunc(draw);
    glutMainLoop();
    return 0;
}


2
27.05.2019, 20:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2019, 20:11
Помогаю со студенческими работами здесь

Запустить скрипт, что использует библиотеку для рисования графиков
В Visual Studio написал сайт и на нем необходимо нарисовать график, для этого использую библиотеку...

Посоветуйте библиотеку PHP для создания графиков
Посоветуйте наиболее простую и понятную в освоении на ваш взгляд библиотеку PHP для создания...

Посоветуйте библиотеку для отображения математических графиков
Здравствуйте! Прошу Вас мне помочь советом. В данный момент разрабатываю диплом, связанный с...

Компонент для рисования графиков
Добрый день! Помогите найти библиотеку для рисования графиков с функцией масштабирования и...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru