日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java3d创建立方体_Opengl创建几何实体——四棱锥和立方体

發(fā)布時間:2023/12/1 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java3d创建立方体_Opengl创建几何实体——四棱锥和立方体 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

//#include

#include

#include

using namespace std;

float rtri;

float rquad;

GLfloat points0[5][3] = { {0,1,0},{-1,-1,1},{1,-1,1},{1,-1,-1},{-1,-1,-1} };

GLfloat points1[8][3] = { {1,1,-1},{-1,1,-1},{-1,1,1},{1,1,1},{1,-1,1},{-1,-1,1},{-1,-1,-1},{1,-1,-1} };

//四棱錐顏色

GLfloat Colors0[4][3] = { {1,0,0},{0,1,0},{0,0,1},{1,1,0} };

//立方體顏色

GLfloat Colors1[6][3] = { {0,1,0},{1,0.5,0},{1,0,0},{1,1,0},{0,0,1},{1,0,1} };

//四棱錐頂點序列號

int vertice0[4][3] = { {0,1,2},{0,2,3},{0,3,4},{0,4,1} };

//立方體頂點序列號

int vertice1[6][4] = { {0,1,2,3},{4,5,6,7},{3,2,5,4},{7,6,1,0},{2,1,6,5},{0,3,4,7} };

void InitGl(GLvoid)

{

glShadeModel(GL_SMOOTH);

glClearColor(1.0f,1.0f,1.0f,1.0f);

glClearDepth(1.0f);

glEnable(GL_DEPTH_TEST);

glDepthFunc(GL_LEQUAL);

glEnable(GL_COLOR_MATERIAL);

glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);

}

/*

創(chuàng)建棱錐體

*/

void CreatePyramid()

{

glBegin(GL_TRIANGLES);

for (int i=0;i<4;i++)

{

glColor3fv(Colors0[i]);

for (int j=0;j<3;j++)

{

int VtxId = vertice0[i][j];

glVertex3fv(points0[VtxId]);

}

}

glEnd();

//構(gòu)建底面

glBegin(GL_QUADS);

glColor3f(1.0f,1.0f,1.0f);

for (int k=0;k<4;k++)

{

glVertex3fv(points0[k]);

}

glEnd();

}

/*

創(chuàng)建立方體

*/

void CreateCube()

{

glBegin(GL_QUADS);

for (int i=0;i<6;i++)

{

glColor3fv(Colors1[i]);

for (int j=0;j<4;j++)

{

int VtxId = vertice1[i][j];

glVertex3fv(points1[VtxId]);

}

}

glEnd();

}

void display(void)

{

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

glLoadIdentity();

glPushMatrix();

glTranslatef(-1.5f,0.0f,-6.0f);//平移至左側(cè)

glRotatef(rtri,0.0f,1.0f,0.0f);//旋轉(zhuǎn)一個角度

CreatePyramid();//創(chuàng)建三棱錐

glLoadIdentity();//將矩陣歸一化回原樣

glTranslatef(1.5f,0.0f,-6.0f);//平移至右側(cè)

glRotatef(rquad,1.0f,0.0f,0.0f);//旋轉(zhuǎn)一個角度

CreateCube();//創(chuàng)建立方體

glPopMatrix();//

rtri += 0.02f;//修改三角塔旋轉(zhuǎn)角度

rquad -= 0.05f;//修改立方體旋轉(zhuǎn)角度

glutSwapBuffers();

}

void reshape(int width,int height)

{

if (height == 0)

{

height = 1;

}

glViewport(0,0,width,height);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

void main(int argc,char** argv)

{

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE);

glutInitWindowSize(600,460);

glutCreateWindow("椎體和立方體");

InitGl();

glutDisplayFunc(display);

glutReshapeFunc(reshape);

glutIdleFunc(display);

glutMainLoop();

}

運行效果:

總結(jié)

以上是生活随笔為你收集整理的java3d创建立方体_Opengl创建几何实体——四棱锥和立方体的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。