计算机图形学作业
来源:互联网 发布:举报网络涉赌 编辑:程序博客网 时间:2024/06/06 03:34
设计一个三维模型,模型可以旋转、缩放、平移和反射变换。 要求: (1)模型有三个以上的基本体素; (2)模型具有多种颜色; (3)以键、菜单、鼠标方式来控制各种变换;(至少采用一种方式) (4)鼓励有创意的模型。
#encoding=utf8from OpenGL.GL import *from OpenGL.GLU import *from OpenGL.GLUT import *import timexaxis = 0.0yaxis = 0.0zaxis = 0.0def cube(): glBegin(GL_QUADS) glColor3f(0.3, 0.3, 0.0) glVertex3f(0.3, 0.3, -0.3) glColor3f(0.0, 0.3, 0.0) glVertex3f(-0.3, 0.3, -0.3) glColor3f(0.0, 0.3, 0.3) glVertex3f(-0.3, 0.3, 0.3) glColor3f(0.3, 0.3, 0.3) glVertex3f(0.3, 0.3, 0.3) glColor3f(0.3, 0.3, 0.3) glVertex3f(0.3, 0.3, 0.3) glColor3f(0.0, 0.3, 0.3) glVertex3f(-0.3, 0.3, 0.3) glColor3f(0.0, 0.0, 0.3) glVertex3f(-0.3, -0.3, 0.3) glColor3f(0.3, 0.0, 0.3) glVertex3f(0.3, -0.3, 0.3) glColor3f(0.3, 0.0, 0.0) glVertex3f(0.3, -0.3, -0.3) glColor3f(0.0, 0.0, 0.0) glVertex3f(-0.3, -0.3, -0.3) glColor3f(0.0, 0.3, 0.0) glVertex3f(-0.3, 0.3, -0.3) glColor3f(0.3, 0.3, 0.0) glVertex3f(0.3, 0.3, -0.3) glColor3f(0.0, 0.3, 0.3) glVertex3f(-0.3, 0.3, 0.3) glColor3f(0.0, 0.3, 0.0) glVertex3f(-0.3, 0.3, -0.3) glColor3f(0.0, 0.0, 0.0) glVertex3f(-0.3, -0.3, -0.3) glColor3f(0.0, 0.0, 0.3) glVertex3f(-0.3, -0.3, 0.3) glColor3f(0.3, 0.3, 0.0) glVertex3f(0.3, 0.3, -0.3) glColor3f(0.3, 0.3, 0.3) glVertex3f(0.3, 0.3, 0.3) glColor3f(0.3, 0.0, 0.3) glVertex3f(0.3, -0.3, 0.3) glColor3f(0.3, 0.0, 0.0) glVertex3f(0.3, -0.3, -0.3) glColor3f(0.5, 0.5, 0.0) glVertex3f(0.5, 0.5, -0.5) glColor3f(0.0, 0.5, 0.0) glVertex3f(-0.5, 0.5, -0.5) glColor3f(0.0, 0.5, 0.5) glVertex3f(-0.5, 0.5, 0.5) glColor3f(0.5, 0.5, 0.5) glVertex3f(0.5, 0.5, 0.5) glColor3f(0.5, 0.5, 0.5) glVertex3f(0.5, 0.5, 0.5) glColor3f(0.0, 0.5, 0.5) glVertex3f(-0.5, 0.5, 0.5) glColor3f(0.0, 0.0, 0.5) glVertex3f(-0.5, -0.5, 0.5) glColor3f(0.5, 0.0, 0.5) glVertex3f(0.5, -0.5, 0.5) glColor3f(0.5, 0.0, 0.0) glVertex3f(0.5, -0.5, -0.5) glColor3f(0.0, 0.0, 0.0) glVertex3f(-0.5, -0.5, -0.5) glColor3f(0.0, 0.5, 0.0) glVertex3f(-0.5, 0.5, -0.5) glColor3f(0.5, 0.5, 0.0) glVertex3f(0.5, 0.5, -0.5) glColor3f(0.0, 0.5, 0.5) glVertex3f(-0.5, 0.5, 0.5) glColor3f(0.0, 0.5, 0.0) glVertex3f(-0.5, 0.5, -0.5) glColor3f(0.0, 0.0, 0.0) glVertex3f(-0.5, -0.5, -0.5) glColor3f(0.0, 0.0, 0.5) glVertex3f(-0.5, -0.5, 0.5) glColor3f(0.5, 0.5, 0.0) glVertex3f(0.5, 0.5, -0.5) glColor3f(0.5, 0.5, 0.5) glVertex3f(0.5, 0.5, 0.5) glColor3f(0.5, 0.0, 0.5) glVertex3f(0.5, -0.5, 0.5) glColor3f(0.5, 0.0, 0.0) glVertex3f(0.5, -0.5, -0.5) glColor3f(1.0, 1.0, 0.0) glVertex3f(1.0, 1.0, -1.0) glColor3f(0.0, 1.0, 0.0) glVertex3f(-1.0, 1.0, -1.0) glColor3f(0.0, 1.0, 1.0) glVertex3f(-1.0, 1.0, 1.0) glColor3f(1.0, 1.0, 1.0) glVertex3f(1.0, 1.0, 1.0) glColor3f(1.0, 1.0, 1.0) glVertex3f(1.0, 1.0, 1.0) glColor3f(0.0, 1.0, 1.0) glVertex3f(-1.0, 1.0, 1.0) glColor3f(0.0, 0.0, 1.0) glVertex3f(-1.0, -1.0, 1.0) glColor3f(1.0, 0.0, 1.0) glVertex3f(1.0, -1.0, 1.0) glColor3f(1.0, 0.0, 0.0) glVertex3f(1.0, -1.0, -1.0) glColor3f(0.0, 0.0, 0.0) glVertex3f(-1.0, -1.0, -1.0) glColor3f(0.0, 1.0, 0.0) glVertex3f(-1.0, 1.0, -1.0) glColor3f(1.0, 1.0, 0.0) glVertex3f(1.0, 1.0, -1.0) glColor3f(0.0, 1.0, 1.0) glVertex3f(-1.0, 1.0, 1.0) glColor3f(0.0, 1.0, 0.0) glVertex3f(-1.0, 1.0, -1.0) glColor3f(0.0, 0.0, 0.0) glVertex3f(-1.0, -1.0, -1.0) glColor3f(0.0, 0.0, 1.0) glVertex3f(-1.0, -1.0, 1.0) glColor3f(1.0, 1.0, 0.0) glVertex3f(1.0, 1.0, -1.0) glColor3f(1.0, 1.0, 1.0) glVertex3f(1.0, 1.0, 1.0) glColor3f(1.0, 0.0, 1.0) glVertex3f(1.0, -1.0, 1.0) glColor3f(1.0, 0.0, 0.0) glVertex3f(1.0, -1.0, -1.0) glEnd()def display(): global xaxis,yaxis,zaxis time.sleep(0.1) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glLoadIdentity() glTranslatef(0, 0, -5) glRotatef(xaxis, 1, 0, 0) glRotatef(yaxis, 0, 1, 0) glRotatef(zaxis, 0, 0, 1) cube() xaxis = xaxis + 1 yaxis = yaxis + 1 zaxis = zaxis + 1 glutSwapBuffers()def reshape(w, h): if (h == 0): h = 1 glViewport(0, 0, w,h) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(45.0,w /h, 0.1, 100.0) glMatrixMode(GL_MODELVIEW)def init(width, height): if (height == 0): height = 1 glClearColor(0.0, 0.0, 0.0, 0.0) glClearDepth(1.0) glDepthFunc(GL_LESS) glEnable(GL_DEPTH_TEST) glShadeModel(GL_SMOOTH) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(45.0,width /height, 1, 100.0) glMatrixMode(GL_MODELVIEW)def keyboard(key, w, h): global xaxis,yaxis,zaxis if (key=='x'): xaxis = xaxis + 10 if (key=='y'): yaxis = yaxis + 10 if (key=='z'): zaxis = zaxis + 10print 'X:X轴+10 Y:Y轴+10 Z:Z轴+10'glutInit()glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH)glutInitWindowPosition(400, 100)glutInitWindowSize(640, 480)glutCreateWindow("HiddenStrawberry")glutDisplayFunc(display)glutIdleFunc(display)glutReshapeFunc(reshape)glutKeyboardFunc(keyboard)init(640, 480)glutMainLoop()
0 0
- 计算机图形学作业
- 计算机图形学作业
- 计算机图形学的课程设计作业
- 计算机图形学 程序代码作业【首发】
- 《高级计算机图形学》大作业的报告
- 计算机图形学作业——DDA算法实现
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- Xcode 6 + iOS 8 SDK but deploy on iOS 7 (UIWebKit & WKWebKit)
- Big Data
- java复习——方法的重载
- 微信支付
- Hi
- 计算机图形学作业
- js:取消事件的默认行为
- 解决Minimum supported Gradle version is 3.3. Current version is 2.14.1
- Leetcode(9)
- mysql 触发器
- 像素反转
- java多线程基础(二)
- js接口鸭式辨型法实现
- dispatcherServlet详解