opengl背景颜色为什么一直是黑色的(+100分), 求问 100
我有3个问题,需要大神帮我下:第一个问题:.我的代码:#include"stdafx.h"#include<Windows.h>#include<gl\glut.h>#i...
我有3个问题,需要大神帮我下:
第一个问题:
.我的代码:
#include "stdafx.h"
#include <Windows.h>
#include <gl\glut.h>
#include <stdlib.h>
void Display(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 1.0f, 1.0f);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(200,200);
glutCreateWindow("Ball");
glutDisplayFunc(&Display);
glutMainLoop();
return 0;
}
为什么我怎么改glClearColor(1.0f, 1.0f, 1.0f, 0.0f);里面的值,背景颜色还是黑色的。。。求大神回答下。
第二个问题是:我用线画圆,但线的宽度大于10怎么做,看一些资料是用quad作为线的宽度,然后画一个圆,但具体不知道怎么做。哪位大神能否写下代码。
第二个问题是,能否固定窗体的大小,图像不会因为窗体大小的改变而改变。
求问。。 展开
第一个问题:
.我的代码:
#include "stdafx.h"
#include <Windows.h>
#include <gl\glut.h>
#include <stdlib.h>
void Display(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 1.0f, 1.0f);
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(200,200);
glutCreateWindow("Ball");
glutDisplayFunc(&Display);
glutMainLoop();
return 0;
}
为什么我怎么改glClearColor(1.0f, 1.0f, 1.0f, 0.0f);里面的值,背景颜色还是黑色的。。。求大神回答下。
第二个问题是:我用线画圆,但线的宽度大于10怎么做,看一些资料是用quad作为线的宽度,然后画一个圆,但具体不知道怎么做。哪位大神能否写下代码。
第二个问题是,能否固定窗体的大小,图像不会因为窗体大小的改变而改变。
求问。。 展开
2个回答
展开全部
一:
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);设置当前帧的背景颜色
glClear(GL_COLOR_BUFFER_BIT);清除当前帧的颜色,也就是变成黑色背景,你先设置了当前帧的数据,然后马上就清除了,当然就没有了。所以你要把这两行代码调换顺序。
二:
void ReshapeFunc(int width, int height)//width和height是当前窗口的大小,
{
glViewport(0, 0, width, height);//设置图像显示窗口和当前系统窗口一样大小,使用参数width, height
glViewport(0, 0, 800, 600);//图像不随窗口的变化而变化。你用这个就行,但是如果系统窗口太小的话,图像会无法全部显示。
}
//你还要在main里添加这样一行代码,就ok啦
glutReshapeFunc(ReshapeFunc);
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);设置当前帧的背景颜色
glClear(GL_COLOR_BUFFER_BIT);清除当前帧的颜色,也就是变成黑色背景,你先设置了当前帧的数据,然后马上就清除了,当然就没有了。所以你要把这两行代码调换顺序。
二:
void ReshapeFunc(int width, int height)//width和height是当前窗口的大小,
{
glViewport(0, 0, width, height);//设置图像显示窗口和当前系统窗口一样大小,使用参数width, height
glViewport(0, 0, 800, 600);//图像不随窗口的变化而变化。你用这个就行,但是如果系统窗口太小的话,图像会无法全部显示。
}
//你还要在main里添加这样一行代码,就ok啦
glutReshapeFunc(ReshapeFunc);
2015-04-28
展开全部
你可以自己改背景颜色的glClearColor();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询