Ограничения:Как построить с использованием openGL с использованием заданных пользователем значений/запрашивая значения?
- Я не могу изменить рамочные
- я должен использовать функции в программе (мой любимый учитель не любит нас, используя функции, предоставляемые любой другой, чем она сама)
Вот код и он работает так же, как это (только не так гладко, как я хотел бы, чтобы это)
#include<OpenGL/gl.h>
#include<OpenGL/glu.h>
#include<GLUT/glut.h>
#include <stdlib.h>
#include <math.h>
int lb=-30, ub=30;
double cpoints=9999999;
void init (void)
{
glClearColor(1,1,1,1);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-30,30,-30,30);
}
void graphfunct2D(void)
{
double dx, xi, yi;
dx = (ub-lb)*1.0/cpoints;
glColor3f(0,0,0);
glClear(GL_COLOR_BUFFER_BIT);
xi = lb;
yi = xi*sin(xi);
int i;
for (i=0; i<=cpoints;i++)
{
glBegin(GL_POINTS);
glVertex2i(xi,yi);
glEnd();
xi = xi+dx;
yi = xi*sin(xi);
}
glFlush();
}
int main (int argc, char** argv)
{
glutInit(&argc, argv);
/*printf("lower bound: ");
scanf(" %d",&lb);
printf("upper bound:");
scanf(" %d",&ub);
printf("Give me the number of points to plot (int)");
scanf(" %d",&cpoints);*/
glutInitWindowSize(500,500);
glutCreateWindow("Graph function in 2D");
init();
glutDisplayFunc(graphfunct2D);
glutMainLoop();
}
Я хочу, чтобы пользователь мог предоставить верхнюю и нижнюю границы и строить график на основе этих двух, но когда я запускаю программу с несогласованными входами, она ничего не отображает (когда я их не прошу и не использую Я определил это работает просто отлично)
Можете ли вы уточнить, что вы имеете в виду Вы имеете в виду, что не отображает подсказку для ввода верхней и нижней границ, или что после того, как пользователь ввел их, она не отображает результаты? – user1118321
@ user1118321 Я имею в виду, что программа запускается (она продолжает прыгать на док-станции, как будто она запускается, но на самом деле она не запускает/не отображает окно/остановку прыжка), это происходит, когда я запускаю ее из компилятора, когда я запускаю ее из терминала запрашивает границы и количество точек для построения, но отображает пустое окно (я получаю некоторые предупреждения tho: –
'func2d.h: В функции« main »: func2d.h: 49: warning: несовместимое неявное объявление встроенная функция 'printf' func2d.h: 50: warning: несовместимое неявное объявление встроенной функции 'scanf' func2d.h: 54: warning: format '% d' ожидает тип 'int *', но аргумент 2 имеет тип 'double *' ' –