OpenGL——三维多面体实现
Posted farewell-farewell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL——三维多面体实现相关的知识,希望对你有一定的参考价值。
#include<iostream> #include <math.h> #include<Windows.h> #include <GL/glut.h> using namespace std; GLsizei winWidth = 600, winHeight = 600; void init() { glClearColor(1.0, 1.0, 1.0, 0.0); } void displayWirePolyhedra() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 1.0); gluLookAt(5.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glScalef(1.5, 2.0, 1.0); glutWireCube(1.0); glScalef(0.8, 0.5, 0.8); glTranslatef(-6.0, -5.0, 0.0); glutWireDodecahedron(); glTranslatef(8.6, 8.6, 2.0); glutWireTetrahedron(); glTranslatef(-3.0, -1.0, 0.0); glutWireOctahedron(); glScalef(0.8, 0.8, 1.0); glTranslatef(4.3, -2.0, 0.5); glutWireIcosahedron(); glFlush(); } void winReshapeFcn(GLint newWidth, GLint newHeight) { glViewport(0, 0, newWidth, newHeight); glMatrixMode(GL_PROJECTION); glFrustum(-1.0, 1.0, -1.0, 1.0, 2.0, 20.0); glMatrixMode(GL_MODELVIEW); glClear(GL_COLOR_BUFFER_BIT); } int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(winWidth, winHeight); glutCreateWindow("立方体"); init(); glutDisplayFunc(displayWirePolyhedra); glutReshapeFunc(winReshapeFcn); glutMainLoop(); system("pause"); return 0; }
运行结果:
以上是关于OpenGL——三维多面体实现的主要内容,如果未能解决你的问题,请参考以下文章
求代码注释:计算机图形学的OpenGL画四面体。高手来吧。争取每句都注释下。谢谢
UVA1438 Asteroids(增量法求三维凸包,加权所有三棱锥质量求多面体重心)