Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

My window is sizing up in OpenGL

Tags:

c++

c

opengl

glut

glu

I want to make the size of my window (800,800), however the GL command

glutInitWindowSize(800, 500); 

Isn't effecting my code in any way. Bellow is the source code in its entirety.

#include <stdio.h>
#include <stdlib.h>
#include <X11/X.h>
#include <X11/Xlib.h>
#include <GL/gl.h>
#include <GL/glx.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <iostream>
#include <math.h>
using namespace std;

struct point{

GLfloat x;
GLfloat y;

};

float a,b;

void initGL() {
   // Set "clearing" or background color
   glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Black and opaque
}

/* Handler for window-repaint event. Call back when the window first appears and
   whenever the window needs to be re-painted. */
void display() {
   glClear(GL_COLOR_BUFFER_BIT);   // Clear the color buffer with current clearing color
//  glutInitWindowSize(800, 800); 

float i;
float radians;
struct point graph[1000];
struct point graphC[1000];

for(i = 0.0; i < 1000.0; i++) {
  graph[(int)i].x = i/1000.0;
  graph[(int)i].y = sqrt(pow(i/100,3) + a*i/100.0 + b)/10.0;
  graphC[(int)i].x = i/1000;
  graphC[(int)i].y = -1*sqrt(pow(i/100,3) + a*i/100.0 + b)/10.0;
}

glBegin(GL_POINTS);

for(int j = 0; j < 1000; j ++){
    glColor3f(1.0f, 0.0f, 0.0f);
    glVertex2f(graph[j].x,graph[j].y);
    glColor3f(1.0f, 0.0f, 0.0f);
    glVertex2f(graphC[j].x,graphC[j].y);
}

glEnd();

for(i = 0.0; i > -1000.0; i--) {
  graph[-1*(int)i].x = i/1000.0;
  graph[-1*(int)i].y = sqrt(pow(i/100,3) + a*i/100.0 + b)/10.0;
  graphC[-1*(int)i].x = i/1000;
  graphC[-1*(int)i].y = -1*sqrt(pow(i/100,3) + a*i/100.0 + b)/10.0;
}

glBegin(GL_POINTS);

for(int j = 0; j < 1000; j ++){
    glColor3f(1.0f, 0.0f, 0.0f);
    glVertex2f(graph[j].x,graph[j].y);
        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex2f(graphC[j].x,graphC[j].y);
    }

    glEnd();

   glFlush();  // Render now

}

/* Main function: GLUT runs as a console application starting at main()  */
int main(int argc, char** argv) {
cout<<"Please enter in a\n";
cin>>a;
cout<<"Please enter in b\n";
cin>>b;
   glutInit(&argc, argv);          // Initialize GLUT
   glutCreateWindow("Scientific Plot");  // Create window with the given title
   glutInitWindowSize(800, 500);   // Set the window's initial width & height
   glutInitWindowPosition(400, 400); // Position the window's initial top-left corner
   glutDisplayFunc(display);       // Register callback handler for window re-paint event
   initGL();                       // Our own OpenGL initialization
   glutMainLoop();                 // Enter the event-processing loop
   return 0;
}
like image 410
Dr.Knowitall Avatar asked Feb 24 '13 05:02

Dr.Knowitall


People also ask

How do I change the window size in opengl?

glutInitWindowPosition and glutInitWindowSize set the initial window position and size respectively. void glutInitWindowSize(int width, int height); void glutInitWindowPosition(int x, int y); width.

What is glutCreateWindow?

Description glutCreateWindow creates a top-level window. The name will be provided to the window system as the window's name. The intent is that the window system will label the window with the name. Implicitly, the current window is set to the newly created window.


1 Answers

Commands like glutInitWindowSize need to be called before glutCreateWindow, otherwise they have no effect. You can change a window's size after creating it by calling glutReshapWindow.

like image 167
radical7 Avatar answered Oct 18 '22 12:10

radical7