當前位置:首頁 » 編程軟體 » 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 14:40:56 瀏覽:826
ftp保存密碼是灰色 發布:2025-01-11 14:00:07 瀏覽:261
壓縮文件最好 發布:2025-01-11 13:59:58 瀏覽:649
有幾家java培訓機構 發布:2025-01-11 13:55:05 瀏覽:476
搭建個人伺服器缺點 發布:2025-01-11 13:54:13 瀏覽:376
怎麼用安卓的手機登錄ios第五人格 發布:2025-01-11 13:44:11 瀏覽:769
登陸Ftp重輸密碼 發布:2025-01-11 13:40:12 瀏覽:335
解壓神器有氧射擊 發布:2025-01-11 13:33:04 瀏覽:853
百度雲的好友在哪個文件夾 發布:2025-01-11 13:32:13 瀏覽:749
2級c語言試題 發布:2025-01-11 13:09:21 瀏覽:941