python的使用方法,怎样使用Python
上期跟大家说了关于大蟒绘图内容,这期跟大家讲讲能够构造立体图形的大蟒内容,感兴趣的小伙伴可以来看下哦~
1.1 利用python的pygame和OpenGL制作动态正方体cube。
1.2 安装python3.8和pygame(省略)。
1.3 安装OpenGL:
效果图【动态】:
完整代码:
# - 导出模块-
importpygame
frompygame.localsimport*
来自OpenGL .GLimport*
来自OpenGL .GLUimport*
# - 初始化简介及安装和定义窗口大小-
pygame.init()
# OPENGL 双缓冲=双缓冲 OPENGL
#DOUBLEBUF:双缓冲模式(推荐和HWSURFACE或计算机图形学一起使用)
#创建一个计算机图形学渲染的显示
pygame.display.set_mode((640,480),OPENGLDOUBLEBUF)
# - 元组定义-
#定义正方体的坐标坐标点
CUBE_POINTS=((0.5,-0.5,-0.5),(0.5,0.5,-0.5),(0.5,-0.5,0.5),(0.5,0.5),0.5,(0.5,-0.5,0.5),0.5,(0.5,-0.5,0.5),0.5,(0.5,-0.5,0.5),0.5,(0.5,-0.5,0.5),0.5,(0.5,-0.5,0.5),0.5,(0.5,-0.5,0.5),0.5,(0.5)。
#定义RGB颜色
立方体颜色=((1,0,0),(1,1,0),(0,1,0),(0,nbs
p;0,0),(1,0,1),(1,1,1),(0,0,1),(0,1,1))
#定义面,四个点构成一个面
CUBE_QUAD_VERTS=((0,1,2,3),(3,2,7,6),(6,7,5,4),(4,5,1,0),(1,5,7,2),(4,0,3,6))
#定义线,两个点构成一个线
CUBE_EDGES=((0,1),(0,3),(0,4),(2,1),(2,3),(2,7),(6,3),(6,4),(6,7),(5,1),(5,4),(5,7),)
#---定义画立方体函数---
defdrawcube():
#"绘制正方体",zip和list法
allpoints=list(zip(CUBE_POINTS,CUBE_COLORS))
#画面积---开始---结束---
glBegin(GL_QUADS)
forfaceinCUBE_QUAD_VERTS:
forvertinface:
pos,color=allpoints[vert]
#在第2个for下面
glColor3fv(color)
glVertex3fv(pos)
#与第1个for对齐
glEnd()
#边线颜色黑色
glColor3f(0,0,0)
#绘制线---开始---结束---
glBegin(GL_LINES)
forlineinCUBE_EDGES:
forvertinline:
pos,color=allpoints[vert]
glVertex3fv(pos)
glEnd()
#---主函数---
defmain():
glEnable(GL_DEPTH_TEST)
#初始化摄像头
glMatrixMode(GL_PROJECTION)
gluPerspective(45.0,640/480.0,0.1,100.0)
glTranslatef(0.0,0.0,-3.0)
glRotatef(25,1,0,0)
#启动循环---
whileTrue:
#事件检测
event=pygame.event.poll()
#定义退出机制,在pygame的while循环中,这一步必备设置
ifevent.type==QUITor(event.type==KEYDOWNandevent.key==K_ESCAPE):
break
#清除屏幕
glClear(GL_COLOR_BUFFER_BITGL_DEPTH_BUFFER_BIT)
#摄像机旋转
glRotatef(1,0,1,0)
drawcube()
#刷新画面
pygame.display.flip()
if__name__=='__main__':
main()
以上内容并不多,大家非常容易消化理解,如需了解更多python实用知识,点击进入PyThon学习网教学中心。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。