当前位置:首页 » 编程软件 » opengl编程实例

opengl编程实例

发布时间: 2022-02-10 03:19:04

1. opengl 编程

程序没问题,我刚运行了一下,绘制的是一条红色直线。
建议还是把OpenGL的文件重新配置一下吧,可能库文件还不全。
如下试试:
链接http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
下载需要的GLUT头文件,DLL和Lib文件,把glut.h放到"Include/GL"下,把glut.lib和glut32.lib放到"VC98/Lib" 下,glut32.dll和glut.dll放到system32下

2. OPENGL编程问题

//旋转直线

#include <gl/glut.h>
GLfloat spin = 0.0;
GLdouble pt[3][3]={0};
int st=0;
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glColor3f(1.0, 1.0, 1.0);
glPointSize(5);
switch(st){
case 3:
glTranslated(pt[2][0],pt[2][1],pt[2][2]);
glRotatef(spin,0,0,1);
glTranslated(-pt[2][0],-pt[2][1],-pt[2][2]);
//点3
glBegin(GL_POINTS);
glVertex3dv(pt[2]);
glEnd();
case 2:
//线
glBegin(GL_LINES);
glVertex3dv(pt[0]);
glVertex3dv(pt[1]);
glEnd();
//点2
glBegin(GL_POINTS);
glVertex3dv(pt[1]);
glEnd();
case 1:
//点1
glBegin(GL_POINTS);
glVertex3dv(pt[0]);
glEnd();
break;
}
glPopMatrix();
glutSwapBuffers();
}
void spinDisplay(void)
{
spin = spin + 1.0;
if (spin > 360.0)
spin -= 360.0;
glutPostRedisplay();
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void toWorldCoords(int x, int y, GLdouble w[3])
{
GLint viewport[4];
GLdouble mv[16],proj[16];
GLint realy;
glGetIntegerv(GL_VIEWPORT, viewport);
glGetDoublev(GL_MODELVIEW_MATRIX, mv);
glGetDoublev(GL_PROJECTION_MATRIX, proj);
realy = viewport[3] - (GLint) y - 1;
gluUnProject(x,realy,0,mv,proj,viewport, w,w+1,w+2);
}
void mouse(int button, int state, int x, int y)
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN)
{
switch(st)
{
case 2:
glutIdleFunc(spinDisplay);
case 1:
case 0:
toWorldCoords(x,y,pt[st++]);
glutPostRedisplay();
break;
}
}
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}

3. 给个cpp OpenGL编程的例子

分别将5个文件复制到windows和VC对应目录下:


这里,是XP系统,所以需要做的就是

将glut.h放到(C:Program FilesMicrosoft SDKs

4. opengl编程高手请进!

OpenGL1.5用户指南英文版
下载地址
http://www.caenet.cn/data/Data.aspx?ID=344

5. 求vc6.0下的openGL编程实例

3D魔方游戏,OpenGL编写,源程序
http://61.137.90.75/downloads104/sourcecode/game/655207603Dm.zip

6. OpenGL程序

borland builder c++ 安装路径下有个example目录,里头有数个OPENGL实例,代码齐全。

7. opengl 编程问题

1.可能在win32下没法实现,它glut做的窗体没发持续刷新屏幕,你可以用sdk或mfc做,这样就可以了
2.同样,也要在sdk或mfc中做
3.记录初始时所有坐标位置就行了
4.和窗体的长和宽做比较,超出范围时候,让其等于窗体长或宽
除了2之外,你可以网上找nehe的电子教程,你想要的都有了,第二个分屏的我能在mfc下做,唯一说的是要把OpenGL的视口做成一个类,在不同屏幕中声明其对象,这样才能达到你想的那种实现。
你很急迫的解决这个问题,一个问题尽然提了两次,你要真的很想实现你要的功能,只能到sdk或者mfc中去做,如果你只在win32下glut做的窗体实现,真的不能,或者很难。我在mfc下做OpenGL,可以肯定能完成你这4个功能

8. 用OpenGL编的小程序

你需要买本来学习,例如经典的opengl红宝书《opengl编程指南》,上面有很多简短的例子

9. OpenGL编程

1.将开发库中的.h文件拷贝到Visual C++2008的\Include\GL目录中
2.将.lib文件拷贝到Visual C++2008的\lib目录中
3.将.dll文件拷贝到操作系统的system32目录中

先看一下里面有没有对应的 glaux.h glaux.lib 没有的话网上下一个,或者给我邮箱我发给你也行

热点内容
电脑改文档服务器 发布:2025-01-11 16:41:14 浏览:868
编译汇编语言实例 发布:2025-01-11 16:36:55 浏览:669
海康ntp校时服务器地址 发布:2025-01-11 16:34:35 浏览:742
服务器运行超时怎么办 发布:2025-01-11 16:34:32 浏览:298
人妖迅雷种子ftp 发布:2025-01-11 16:33:04 浏览:915
python将列表转化为字符串 发布:2025-01-11 16:32:11 浏览:191
大疆稳定器wifi连接初始密码多少 发布:2025-01-11 16:25:36 浏览:889
专线服务器运行的项目如何访问 发布:2025-01-11 16:15:13 浏览:720
小米智能摄像机云存储 发布:2025-01-11 16:12:08 浏览:555
lnmpphp升级 发布:2025-01-11 16:12:07 浏览:326