各位高手 谁能帮我看看下面这段程序运行时的问题在哪吗?关于opengl的。
//Point.c#include<windows.h>#include<gl/glut.h>#include<gl/gl.h>voidRenderScene(void)...
//Point.c
#include <windows.h>
#include <gl/glut.h>
#include<gl/gl.h>
void RenderScene(void)
{glClear(GL_COLOR_BUFFER_BIT); //同当前背景色填充窗口
glColor3f(0.0f, 0.0f, 0.0f); //设置当前的绘图 RGB 颜色
GLfloat sizes[2]; //保存绘制点的尺寸范围
GLfloat step; //保存绘制点尺寸的步长
GLfloat curSize; //保存绘制的点的大小
glGetFloatv(GL_POINT_SIZE_RANGE,sizes); //获得点的尺寸范围
glGetFloatv(GL_POINT_SIZE_GRANULARITY,&step); //获得点尺寸的步长
//绘制大小不同的点
curSize=sizes[0];
for (int i=0;i<25;i++)
{
glPointSize(CurSize); //设置点的大小
glBegin(GL_POINTS);
glVertex3f(25.0+i*8,200.0f,0.0f);
glEnd();
curSize +=step*2;
}
glFlush();//刷新OpenGL 命令队列
}
void ChangeSize(GLsizei w, GLsizei h)
{
if(h == 0) h = 1;
glViewport(0, 0, w, h); //设置视区尺寸
// 重置坐标系统
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// 修剪空间范围
if (w <= h)
glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);
else
glOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void SetupRC(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // 设置窗口背景色
}
void main(void)
{
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("点");
glutDisplayFunc(RenderScene); // 显示回调函数
glutReshapeFunc(ChangeSize); // 设置再整形回调函数
SetupRC();
glutMainLoop(); //启动主 GLUT 事件处理循环
} 展开
#include <windows.h>
#include <gl/glut.h>
#include<gl/gl.h>
void RenderScene(void)
{glClear(GL_COLOR_BUFFER_BIT); //同当前背景色填充窗口
glColor3f(0.0f, 0.0f, 0.0f); //设置当前的绘图 RGB 颜色
GLfloat sizes[2]; //保存绘制点的尺寸范围
GLfloat step; //保存绘制点尺寸的步长
GLfloat curSize; //保存绘制的点的大小
glGetFloatv(GL_POINT_SIZE_RANGE,sizes); //获得点的尺寸范围
glGetFloatv(GL_POINT_SIZE_GRANULARITY,&step); //获得点尺寸的步长
//绘制大小不同的点
curSize=sizes[0];
for (int i=0;i<25;i++)
{
glPointSize(CurSize); //设置点的大小
glBegin(GL_POINTS);
glVertex3f(25.0+i*8,200.0f,0.0f);
glEnd();
curSize +=step*2;
}
glFlush();//刷新OpenGL 命令队列
}
void ChangeSize(GLsizei w, GLsizei h)
{
if(h == 0) h = 1;
glViewport(0, 0, w, h); //设置视区尺寸
// 重置坐标系统
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// 修剪空间范围
if (w <= h)
glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);
else
glOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void SetupRC(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // 设置窗口背景色
}
void main(void)
{
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("点");
glutDisplayFunc(RenderScene); // 显示回调函数
glutReshapeFunc(ChangeSize); // 设置再整形回调函数
SetupRC();
glutMainLoop(); //启动主 GLUT 事件处理循环
} 展开
1个回答
展开全部
说下你的问题,比如编译不通过的话,提示信息是什么
追问
由于字数限制 这是部分提示信息
Compiling...
e:\零\vc++\新建 文本文档.c(8) : error C2275: 'GLfloat' : illegal use of this type as an 执行 cl.exe 时出错.
新建 文本文档.exe - 1 error(s), 0 warning(s)
追答
我也是正在学opengl哈,你看是不是这两句多重定义了呢
GLfloat sizes[2]; //保存绘制点的尺寸范围
curSize=sizes[0];
汉坤(北京)流体控制技术有限公司
2023-06-12 广告
2023-06-12 广告
根据大数据评选,2022年电动执行器十大品牌名单有:1. 秀辉。2. 丹冠。3. 方威。4. 天津宝恒。5. 常辅股份。6. 新峰。7. 德博科技。8. 摩控。9. 科威纳。10. deyo。以上十大品牌是电动执行器行业的知名品牌,排名不分...
点击进入详情页
本回答由汉坤(北京)流体控制技术有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询