A. 如何讓一個程序以OPENGL方式運行

http://wenku..com/view/676808791711cc7931b7167b.html
看這里

B. 求一個opengl游戲程序 小功能

你可以學一下GLUT:
http://blog.csdn.net/xie_zi/article/details/1911406

GLUT是個建立在OpenGL基礎上的應用程序框架,它幫你把一些繁瑣的(和平台相關的)操作簡化了很多,比如建立窗口,監聽鍵盤滑鼠輸入之類的,用起來十分方便,用來寫小游戲也足夠了,非常適合你的要求。

C. opengl繪制一個球體的程序

語法也有錯誤:glVertex3fv(&vdata [&tindices[i][0][0]]);
glVertex3fv(&vdata [tindices[i][1][0]]);
glVertex3fv(&vdata [tindices[i][2][0]]);

改為:

glVertex3fv(vdata [tindices[i][0]]);

glVertex3fv(vdata [tindices[i][1]]);

glVertex3fv(vdata [tindices[i][2]]);

我的運行環境是在QT IDE上運行的。4.7.0版。

如果你是在VC上運行應該也要加入opengl32,glut,glut32庫(32位WIN上的),

另外,這個程序你是看不到一個球體的,因為你沒有使用光照,只能看到一個輪廓。

我的Qt上我加入的庫是:opengl32,glut,glee5(glee5是glee是自己編譯的替換glut32庫)

頭加入了:windown.h,gl/glee.h(glee.h就是glee的頭文件在網上可以下載,比gl.h要高級,因為WIN上的gl.h只支持到opengl32的1.1版)

源文件:

#include <windows.h>///////////////////////////////

#include <GL/glee.h>
////////////////////////////////

#include <GLglut.h>

#include <math.h>

#define x .52573

#define z .85965

void mydisplay(void)

{

static GLfloat vdata[12][3]={{-x,0.0,z},

{x,0.0,z},

{-x,0.0,-z},

{x,0.0,-z},

{0.0,z,x},

{0.0,z,-x},

{0.0,-z,x},

{0.0,-z,-x},

{z,x,0.0},

{-z,x,0.0},

{z,-x,0.0},

{-z,-x,0.0}};

static GLuint tindices[20][3]={{1,4,0},

{4,9,0},

{4,5,9},

{8,5,4},

{1,8,4},

{1,10,8},

{10,3,8},

{8,3,5},

{3,2,5},

{3,7,2},

{3,10,7},

{10,6,7},

{6,11,7},

{6,0,11},

{6,1,0},

{10,1,6},

{11,0,9},

{2,11,9},

{5,2,9},

{11,2,7}};

int i;

glBegin(GL_TRIANGLES);

for(i=0;i<20;i++)

{

glVertex3fv(vdata [tindices[i][0]]);//////////////////////////////////////////////

glVertex3fv(vdata [tindices[i][1]]);/////////////////////////////////////////////

glVertex3fv(vdata [tindices[i][2]]);////////////////////////////////////////////

}

glEnd();

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

glutInitWindowPosition(100, 100);

glutInitWindowSize(400, 400);

glutCreateWindow("第一個OpenGL程序");

glutDisplayFunc(&mydisplay);

glutMainLoop();

return 0;

}

後面加了///////////////////////////////////是我修改了的。

我用的連接庫是:

LIBS=-lopengl32 -lfreeglut -lglee5

D. 麻煩大家幫我看看,一個簡單的opengl程序

你的圖形已經畫出來了,但是reshape()函數寫的可能有問題,所以看不到,可以在畫圖函數里畫一個簡單的紅色矩形試試就知道了。
關於reshape()可以參考超級寶典里的寫法(直接復制可能要注意下格式):
完整代碼(不含include):

GLUquadricObj *quadObj1;
void reshape(int w, int h)
{
GLfloat aspectRatio;
if(h == 0)h = 1;
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
aspectRatio = (GLfloat)w / (GLfloat)h;
if (w <= h)
glOrtho (-100.0, 100.0, -100 / aspectRatio, 100.0 / aspectRatio, 1.0, -1.0);
else
glOrtho (-100.0 * aspectRatio, 100.0 * aspectRatio, -100.0, 100.0, 1.0, -1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void drawAnnulus()
{
quadObj1 = gluNewQuadric();
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
gluQuadricDrawStyle(quadObj1,GLU_POINT);
glTranslatef(10.0,10.0,0.0);
glColor3f(1.0,1.0,1.0);
gluPartialDisk(quadObj1,15.0,25.0,15.0,10.0,10.0,100.0);
glPopMatrix();
gluDeleteQuadric(quadObj1);
glFlush();
}

int main(int argc, char *argv[])
{

glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB );
glutInitWindowPosition(0,0);
glutInitWindowSize(500,500);
glutCreateWindow("五環");
glutReshapeFunc(reshape);
glutDisplayFunc(drawAnnulus);
glutMainLoop();
return 0;
}

關於補充問題:
不知道你是否已經試過改為我提供的代碼。總之我改後能看到你說的圓盤。不用截圖給你看吧。你的圓盤只有一小段,因為你的角度只有10-100...把整個代碼貼給你吧。

E. 急求opengl程序代碼

#include<windows.h>
#include<stdlib.h>
#include<stdio.h>
#include<GL/glut.h>
#include<math.h>

void drawline(float x1,float y1,float x2,float y2) //The function to draw a line from point(x1,y1) to point (x2,y2)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex2f(x1,y1);
glVertex2f(x2,y2);
}

void _display(void)
{
#define pi 3.1415926
GLfloat theta,r=18;
GLint n=16;
theta=2*pi/n;
GLfloat vertex_list[16][2];
for(int i=0;i<n;i++) //Find the vertex
{
vertex_list[i][0]=25+r*cos(i*theta);
vertex_list[i][1]=25+r*sin(i*theta);

}
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 0.0, 0.0);
glBegin(GL_LINE_LOOP);
for(int j=0;j<n;j++)
{

for(int k=j;k<n;k++)
{
drawline(vertex_list[j][0],vertex_list[j][1],vertex_list[k][0],vertex_list[k][1]);

}
}

glEnd();
glFlush ();
}

void _init (void)
{
glClearColor (1.0, 1.0, 1.0, 0.0);
glColor3f(1.0, 0.0, 0.0) ;

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 50.0, 0.0, 50.0);
glMatrixMode(GL_MODELVIEW);
}

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 0);
glutCreateWindow ("hello");
_init ();
glutDisplayFunc(_display);
glutMainLoop();

return 0;
}

一個正十六邊形 各點相連的圖形
我自己寫的 你看看行不行

F. opengl程序發布

我前幾天遇到過和你同樣的問題,後來自己解決了。
解決方法:
直接將glut.h、glut.lib、glut32.lib、glut.dll、glut.32.dll這5個文件復制到你的homework文件夾中,然後,把代碼中的
#include
<gl/glut.h>
改成
#include
"glut.h"
就可以了。
以上5個glut文件打包下載地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
我的程序頭部如下:
//裝載OpenGL的lib庫文件
#pragma
comment(lib,"opengl32.lib")
#pragma
comment(lib,"glu32.lib")
#pragma
comment(lib,"glaux.lib")
//裝載OpenGL頭文件
#include
<gl/gl.h>
//標准OpenGL頭文件
#include
<gl/glu.h>
//OpenGL實用工具庫
#include
<gl/glaux.h>
//OpenGL輔助函數庫
//#include
<gl/glut.h>
#include
"glut.h"
//修改後的
......
......

G. OpenGL程序的小問題

一個很小很小的錯誤。
在繪制文本的時候,改變了xRaster的值:// xRaster += 50;
所以下次重繪的時候,*號的位置就變了。
解決辦法也很簡單,在繪制*號之前,重新把xRaster修改為25就行了。
glColor3f(1.0,0.0,0.0); //設置標記顏色為紅色
xRaster = 25;

for(k = 0;k < 12;k++){ //將數據畫為星號多點標記
glRasterPos2i (xRaster + k*50,dataValue [k] - 4); //設置當前光柵位置
glutBitmapCharacter(GLUT_BITMAP_9_BY_15,'*');
另外想問下樓主你學OpenGL是做什麼?之前在學校里因為導師的項目需要,用了一年的OpenGL,現在基本上荒廢掉了。

H. 用OpenGL編的小程序

實現三維金字塔的繪制#include <windows.h>#include <GL/glut.h>GLfloat rtri=60.0; // 設置三角形的旋轉角度void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); // 重置模型觀察矩陣 glScalef (0.25, 0.25, 0.25); // 設置金字塔的縮放大小 glRotatef(rtri,-0.25f,1.0f,0.0f); // 金字塔繞Y軸旋轉1.0倍rtri,繞X軸旋//轉-0.25倍rtri glBegin(GL_TRIANGLES); // 開始繪制金字塔的各個面 glColor3f(1.0f,0.0f,0.0f); // 紅色 glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上頂點(前側面) glColor3f(0.0f,1.0f,0.0f); // 綠色 glVertex3f(-1.0f,-1.0f, 1.0f); // 三角形的左下頂點(前側面) glColor3f(0.0f,0.0f,1.0f); // 藍色 glVertex3f( 1.0f,-1.0f, 1.0f); // 三角形的右下頂點(前側面) glColor3f(1.0f,0.0f,0.0f); // 紅色 glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上頂點(右側面) glColor3f(0.0f,0.0f,1.0f); // 藍色 glVertex3f( 1.0f,-1.0f, 1.0f); // 三角形的左下頂點(右側面) glColor3f(0.0f,1.0f,0.0f); // 綠色 glVertex3f( 1.0f,-1.0f, -1.0f); // 三角形的右下頂點(右側面) glColor3f(1.0f,0.0f,0.0f); // 紅色 glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上頂點(後側面) glColor3f(0.0f,1.0f,0.0f); // 綠色 glVertex3f( 1.0f,-1.0f, -1.0f); // 三角形的左下頂點(後側面) glColor3f(0.0f,0.0f,1.0f); // 藍色 glVertex3f(-1.0f,-1.0f, -1.0f); // 三角形的右下頂點(後側面) glColor3f(1.0f,0.0f,0.0f); // 紅色 glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上頂點(左側面) glColor3f(0.0f,0.0f,1.0f); // 藍色 glVertex3f(-1.0f,-1.0f,-1.0f); // 三角形的左下頂點(左側面) glColor3f(0.0f,1.0f,0.0f); // 綠色 glVertex3f(-1.0f,-1.0f, 1.0f); // 三角形的右下頂點(左側面) glEnd(); rtri+=0.2f; // 增加三角形的旋轉變數(新增) glFlush(); }void main(int argc, char *argv[]) // 主函數,與例4.1相同{ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(600, 600); glutCreateWindow("第二個OpenGL程序"); glutDisplayFunc(&myDisplay); glutMainLoop();}