gpt4 book ai didi

c++ - 我的窗口在 OpenGL 中正在调整大小

转载 作者:太空狗 更新时间:2023-10-29 20:05:09 25 4
gpt4 key购买 nike

我想调整窗口大小 (800,800),但是 GL 命令

glutInitWindowSize(800, 500); 

不会以任何方式影响我的代码。下面是完整的源代码。

#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;
}

最佳答案

glutInitWindowSize这样的命令需要在glutCreateWindow之前调用,否则没有效果。您可以在创建窗口后通过调用 glutReshapWindow 更改窗口的大小。

关于c++ - 我的窗口在 OpenGL 中正在调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15048934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com