幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

PyOpenGL是一个调用OpenGL的2D3D的pytho

  1说明
  1。1PyOpenGL:是一个调用OpenGL的2D3D的python图形库。
  1。2OpenGL:
  1。2。1OpenGraphicsLibrary,开放图形库或者。
  1。2。2是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。
  1。2。3常用于CAD、虚拟实境、科学可视化程序和电子游戏开发。
  1。3本文讲解PyOpenGL安装和入门级使用,由浅入深,注释详细,一秒入门,适合收藏。
  2准备
  2。1环境:deepinlinux操作系统,华为笔记本电脑,python3。8,微软vscode编辑器。
  2。2官网https:pypi。orgprojectPyOpenGLhttps:github。commcfletchpyopengl
  2。3安装pipinstallPyOpenGLPyOpenGLaccelerate本机安装sudopip3。8installihttps:pypi。tuna。tsinghua。edu。cnsimplePyOpenGLPyOpenGLaccelerate
  3入门教程
  3。1第一个窗口和颜色设置
  3。1。1效果图
  3。1。2代码导入OpenGL的库,一般常规导入下面三个模块调出gl函数fromOpenGL。GLimport调出glu函数,本代码未使用该组函数fromOpenGL。GLUimport调出glut函数fromOpenGL。GLUTimportdeffirstwin():glClear(GLCOLORBUFFERBIT)glClearColor(red,green,blue,alpha)R值(红色分量)、G值(绿色分量)、B值(蓝色分量)和A值(alpha分量)。背景颜色,艳红色glClearColor(1。0,0。0,1。0,1。0)背景颜色:黑色glClearColor(0。0,0。0,0。0,1。0)蓝色glClearColor(0。0,0。0,1。0,1。0)纯红色glClearColor(1。0,0。0,0。0,1。0)glClearColor(1。0,0。0,0。0,0。0)白色注意推荐A值为1glClearColor(1。0,1。0,1。0,1。0)刷新glFlush()defmain():glut初始化函数glutInit()窗口显示模式glutInitDisplayMode(GLUTSINGLEGLUTRGB)初始坐标位置,左上角坐标为0,0,glutInitWindowPosition(50,50)窗口大小设置glutInitWindowSize(600,600)窗口名称设置glutCreateWindow(1firstwin)展示显示内容glutDisplayFunc(firstwin)循环挂起glutMainLoop()ifnamemain:main()
  3。2helloworld和字体
  3。2。1效果图
  3。2。2代码encoding:utf8模块导入fromOpenGL。GLimport没有使用到该函数fromOpenGL。GLUimportfromOpenGL。GLUTimport定义函数defDrawText(string):forcinstring:font字体,只支持英文由于是glut内置函数,功能有所限制,只能显示英文字符,而且字体、大小都不能任意设置GLUTBITMAP8BY13GLUTBITMAP9BY15GLUTBITMAPTIMESROMAN10字体:TIMESROMAN大小:10GLUTBITMAPTIMESROMAN24字体:TIMESROMAN大小:24GLUTBITMAPHELVETICA10GLUTBITMAPHELVETICA12GLUTBITMAPHELVETICA18glutBitmapCharacter(GLUTBITMAP8BY13,ord(c))glutBitmapCharacter(GLUTBITMAPTIMESROMAN24,ord(c))defDraw():glClear(GLCOLORBUFFERBITGLDEPTHBUFFERBIT)清除颜色和深度缓存设置颜色为绿色glColor3f(0。0,1。0,0。0)定位文字,坐标位置中心位置glRasterPos2f(0。0,0。0)glRasterPos2f(x,y)其实就相当于是glVertex2f(x,y)的坐标,只是glRasterPos2f(x,y)用于显示〔字体〕时设置字符的起始位置,而glVertex2f(x,y)是绘制一个2D点绘制文字,不支持中文DrawText(2Helloworld你好世界)DrawText(2Helloworld)交换缓存glutSwapBuffers()defmain():glutInit()glutInitDisplayMode(GLUTRGBAGLUTDOUBLEGLUTDEPTH)窗口大小设置:宽和高glutInitWindowSize(800,300)窗口标题名设置glutCreateWindow(2Helloworld)glutDisplayFunc(Draw)glutMainLoop()ifnamemain:main()
  4茶壶teapot
  4。1静态teapot
  4。1。1效果图
  4。1。2代码静态的茶壶:teapotsfromOpenGL。GLimportfromOpenGL。GLUimportfromOpenGL。GLUTimportdefdrawFunc():glClear(GLCOLORBUFFERBIT)默认背景颜色为黑色01为茶壶大小倍数glutWireTeapot(0。5)glFlush()defmain():glutInit()glutInitDisplayMode(GLUTSINGLEGLUTRGBA)glutInitWindowSize(600,600)glutCreateWindow(3teapots)glutDisplayFunc(drawFunc)glutMainLoop()ifnamemain:main()
  4。2动态teapot:
  旋转茶壶,并附送其他3D模型参数
  4。2。1效果图
  4。2。2代码动态茶壶:teapotm,旋转茶壶fromOpenGL。GLimportfromOpenGL。GLUimportfromOpenGL。GLUTimportdefdrawFunc():清除之前画面glClear(GLCOLORBUFFERBIT)glRotatef(0。1,10,5,0)(角度,x,y,z),产生动画add1glutWireTeapot(0。5)画线框茶壶旋转的3D模型:附送glutSolidTeapot(0。5)画实心茶壶glutWireSphere(0。5,10,10)线框球glutWireCube(1)线框立方体内半径,外半径,分成10份,分成10份glutWireTorus(0。2,0。4,10,10)线框圆环;甜甜圈glutWireIcosahedron(void)线框20面体glutWireDodecahedron(void)线框12面体,报错,why?glutWireOctahedron(void)线框8面体glutWireTetrahedron(void)线框4面体glutWireCone(GLdoubleradius,GLdoubleheight,GLintslices,GLintstacks)线框圆锥体glutWireCone(0。5,1,10,10)线框圆锥体刷新显示glFlush()defmain():使用glut初始化OpenGLglutInit()显示模式:GLUTSINGLE无缓冲直接显示GLUTRGBA采用RGB(A非alpha)glutInitDisplayMode(GLUTSINGLEGLUTRGBA)窗口位置及大小生成glutInitWindowPosition(400,200)glutInitWindowSize(600,600)glutCreateWindow(4teapotm)调用函数绘制图像glutDisplayFunc(drawFunc)glutIdleFunc(drawFunc)产生动画函数add2主循环glutMainLoop()ifnamemain:main()
  5正方形和正方体
  5。1正方形:静态
  5。1。1效果图
  5。1。2代码正方形fromOpenGL。GLimportfromOpenGL。GLUTimportdefdisplay():glClearColor(0。0,0。0,0。0,0。0)R,G,B(0,0,0)black,Alpha0glClear(GLCOLORBUFFERBIT)glRotatef(0。1,10,5,0)(角度,x,y,z),产生动画add1glColor3f(0。0,1。0,0。0);R,G,B(0,1,0)GreenglRectf(0。5,0。5,0。5,0。5)DrawagreenRectangleglFlush()defmain():glutInit()glutInitDisplayMode(GLUTSINGLEGLUTRGBA)绘图模式,单缓冲,RGBA颜色模式glutInitWindowSize(500,500)窗口大小glutInitWindowPosition(100,100)窗口位置glutCreateWindow(square1)窗口标题名glutDisplayFunc(display)注册用于绘图的回调函数glutIdleFunc(display)产生动画函数add2glutMainLoop()进入主循环,期间将运行注册的回调函数ifnamemain:main()
  5。2旋转正方形
  5。2。1效果图
  5。2。2代码:将上述代码的注释去除即可add1和add2,此处省略。
  5。3旋转正方体
  5。3。1效果图
  5。3。2代码一fromOpenGL。GLimportfromOpenGL。GLUTimportdefdrawFunc():glClear(GLCOLORBUFFERBIT)glRotatef(0。1,10,5,0)(角度,x,y,z),产生动画add1自带正方体glutWireCube(1)线框立方体glFlush()defmain():使用glut初始化OpenGLglutInit()glutInitDisplayMode(GLUTSINGLEGLUTRGBA)窗口位置及大小glutInitWindowPosition(400,200)glutInitWindowSize(600,600)glutCreateWindow(5square3)调用函数绘制图像glutDisplayFunc(drawFunc)glutIdleFunc(drawFunc)产生动画函数add2主循环glutMainLoop()ifnamemain:main()
  5。3。3代码二fromOpenGL。GLimportfromOpenGL。GLUimportfromOpenGL。GLUTimportDIY自定义参数8个坐标点:顶点verticies((1,1,1),(1,1,1),(1,1,1),(1,1,1),(1,1,1),(1,1,1),(1,1,1),(1,1,1))12条边edges((0,1),(0,3),(0,4),(2,1),(2,3),(2,7),(5,1),(5,4),(5,7),(6,3),(6,4),(6,7),)defCube():清除之前画面glClear(GLCOLORBUFFERBIT)glRotatef(0。1,10,5,0)(角度,x,y,z),产生动画add1glBegin(GLLINES)glBegin和glEnd()是绘图的必备函数foredgeinedges:forvertexinedge:glVertex3fv(verticies〔vertex〕)这个函数就是连点,这个函数执行两次画一条线,两点确定一条直线,参数为三维的坐标glEnd()glFlush()defmain():glutInit()glutInitDisplayMode(GLUTSINGLEGLUTRGBA)窗口位置及大小glutInitWindowPosition(400,200)glutInitWindowSize(800,600)glutCreateWindow(5squaremdiy)display(800,600)display〔800,600〕gluPerspective(45,(display〔0〕display〔1〕),0。5,50。0)参数1是我们看显示物体的远近参数2是物体显示的长宽比,和窗口长宽比相同就行参数3和4是z轴近和远的裁剪面的距离glTranslatef(0。0,0。0,5)Z轴就是我们眼睛到屏幕方向的轴,负是远,正是近,其实就是让物体相对与屏幕在XYZ各方向移动几个距离glRotatef(1,1,1,1)参数1是旋转的速度,参数2是x,yandz的一个坐标,表示从(0,0,0)点到(x,y,z)这条线为轴进行旋转glClear(GLCOLORBUFFERBITGLDEPTHBUFFERBIT)用来删除就得画面,清空画布调用函数绘制图像glutDisplayFunc(Cube)glutIdleFunc(Cube)产生动画函数add2主循环glutMainLoop()ifnamemain:main()
  5。4旋转的可变色的正方形
  5。4。1效果图
  5。4。2代码fromOpenGL。GLimportfromOpenGL。GLUTimportimporttimefrommathimportsin,cos,pik0n4多边形变数R10外接圆半径theta0。0旋转初始角度值defRedraw():globaln,theta,R,kglClear(GLCOLORBUFFERBIT)设置三种可变颜色if(k1):glColor3f(1。0,0,0)设置红色绘图颜色k2elif(k2):glColor3f(0,1。0,0)k0else:glColor3f(1。0,1。0,0)k1glLineWidth(1。0)glBegin(GLPOLYGON)开始绘制四边形foriinrange(n):glVertex2f(Rcos(thetai2pin),Rsin(thetai2pin))glEnd()glutSwapBuffers()双缓冲的刷新模式改变窗口大小时调用defResize(w,h):globaln,theta,RglMatrixMode(GLPROJECTION)投影矩阵模式glLoadIdentity()矩阵堆栈清空设置裁剪窗口大小glOrtho(1。5Rwh,1。5Rwh,1。5R,1。5R,1。0,1。0)glViewport(0,0,w,h)设置视区大小glMatrixMode(GLMODELVIEW)模型矩阵模式defmyidle():globalthetathetatheta2。0if(theta2pi):thetatheta2piglutPostRedisplay()重画,相当于重新调用Redraw(),改编后的变量得以传给绘制函数time。sleep(0。5)延时0。5秒defmain():glutInit()glutInitWindowSize(700,700)设置显示模式(注意双缓冲)glutInitDisplayMode(GLUTDOUBLEGLUTRGB)glutCreateWindow(ARotatingSquare)glutDisplayFunc(Redraw)glutReshapeFunc(Resize)glutIdleFunc(myidle)glClearColor(0。0,0。0,1。0,1。0)背景蓝色glutMainLoop()ifnamemain:main()

延迟退休如何兼顾各方利益延迟退休,目前看已经是大势所趋。延迟退休关系到全国人民的根本利益,影响社会就业整体形势,是一件重要的国家制度改革。对于这样一项工作,社会上各界均有自己不同的看法。并且由于各自情……新生宝宝头颅方形,补充维生素D,可以改变头型?生命早期1000天了不起的医生真相来了家长咨询的问题:宝宝偷方颅,如果是补d能恢复正常头型吗?钙铁锌每天怎么合理地补,补多久?需做哪些检查?出生后两周就开始吃伊可新了,一直再吃……懂法的人,足不出户,在家就把官司打了在网络购物愈发便利的今天,网购踩雷,也越发得严重。看得好好的,送过来却是坏的,找平台索赔平台也在推诿责任!所有的投诉又都需要向当地部门投诉自己想起诉,但是本地……我们为什么会惧怕年龄?因年龄不设限,不要被年龄绑架了,我们在生活中,总会听到一股声音,告诉你要在什么年龄做什么事情,很多人挂在口中的也是一句话,我老了,不适合做这个事。我们一直很惊讶就是苏神跑步,跑……母乳喂养10大谣言,你肯定被坑过3个以上每年8月的第一周是世界母乳喂养周,2019年的主题是:助力父母,成功母乳喂养。也是希望家庭和社会给母乳妈妈们更多的理解和关怀。据中国发展研究基金会今年发布的调查报告,我国……胎教不宜过早或过晚,怀孕第四个月是开启胎教的最佳时期进入孕中期,胎宝宝的神经系统、感觉系统、听觉系统开始发达,对外界的一些刺激会形成特定的反应,正是胎教的好时机,你可以全面开展你们的早教课堂!这个时期,胎盘已经形成,会将你……42个长相奇特的蔬菜水果,简直不可思议,你曾见过吗?这个世界的奇妙之处简直太多太多,不说远离人类的深海与密林,单是人们随手可见的事物中,就充满了不可思议的巧合。而且,不说那些把伪装当做生存技能的动植物,单是我们吃的水果蔬菜也经常……37张让人惊讶的巧合图片,网友简直不可思议巧合其实就是指那些发生概率比较低的事件,而它的神奇之处就在于,虽然它们大多是随机发生,但大都没有可重复性。比如我们随手扔出一个硬币,硬币恰巧立在了地上,如果这时候我们想要重复这……为何外国人产后不用坐月子,中国人必须要坐月子?老了才知道差距生完孩子坐月子是中国人五千年的传承。坐月子这一说法,在古代很早的时候就有了。目的是让产妇得到足够的修养,以补充元气。在古代什么酒精消毒器械都没有,只能靠产妇自己生。很容易感染。……上届冠军这届路人,女排连赢两场无力回天,郎平退役后何去何从昨天下午,中国女排打完了这届奥运会的最后一场比赛。上一届的奥运金牌得主,今年的夺冠热门,在小组赛就被淘汰出局,真是爆了一个大冷门。前三场全输,女排状态低迷,长了眼睛都能看……金刚菩提半年玉化,这玩法绝了首先,准备一个塑料袋,当然还得有一串刷干净的金刚菩提!拿住金刚菩提用塑料袋包起,打个结,不需要太紧,这个度大家自己掌握,不影响盘玩金刚就好。(大家记住先把手洗干净哦,这很……全球首个5G火车站落地上海,华为再一次站上舞台!2019年2月18日下午,全球首个基于5G的室内数字系统在上海虹桥火车站正式启动建设,华为再一次站上舞台,又一个全球第一诞生!5G火车站具备以下五大便民服务;快速进……
关于宝宝腹泻的那些误区,宝妈们有没有中招呢?婴儿腹泻如应该如何缓解呢?在冬季腹泻的宝宝深受煎熬,同时爸爸妈妈也跟着一起揪心,唯有对症下药尽快缓解宝宝腹泻的痛苦,但是很多新手爸妈在处理宝宝腹泻的时候让然有一些误区,接下来一……家长在防护孩子视力方面有很多误区,你是否中枪了?现在社会中有很多关于眼睛方面的宣传活动,让大家认识到保护眼睛、保护视力是很重要的。但在保护视力方面,一些家长和孩子们还是存在一些认识上的问题的。比如身边很多人的做法认为是在保护……海汕记开火锅加盟店没什么技巧,记住这几点现在不少人都想开火锅店来创业,火锅作为我国餐饮行业现在的龙头品类,占了全国总销售额的20,已经成为了我国餐饮行业的重要支柱。据统计2021年,全国的火锅店共有70余万家,但开火……做配得上小孩的家长说实话,这个标题其实想了很久,最终决定形成文字不是经验之谈,而是希望以白纸黑字的形式,对自己提出明确要求。为人父母,我们常给孩子提要求,说你要如何、要如何,其实仔细想想,……摸脚丫探鼻息,慌张爸爸意外走红!网友娃还活着呢在我们的现实生活中,照顾宝宝的责任通常都是妈妈负责的,一些宝爸总是以工作忙,养家赚钱为由,对于孩子的照顾是能不伸手就不伸手啊!因为宝爸们也知道,照顾孩子可不是一件容易的事情。不……疤痕疙瘩为什么容易复发?疤痕疙瘩就像一个阴魂不散的幽灵,治疗之后不但没有烟消云散,反而卷土重来、来势凶猛,比原来更让人难以招架。疤痕疙瘩为什么易复发?首先,疤痕疙瘩易复发是由于它本身极强的生命力……冒领的母爱,十天温暖让冰冻的灵魂苏醒12年后,她的爱子失而复得,然而短短的10天之后,儿子突然离家出走。随着警方的介入,真相大白所谓的儿子只是个冒名顶替的流浪汉,而儿子离开的原因,竟是被她的一片爱子之心所感动。……玩转积木边玩边提高孩子的综合能力有家长问大赛爸爸,家里买了很多玩具,但是好像孩子提不起什么兴趣,每个玩具都是玩几下就不玩了。这是什么原因呢?现在玩具的种类花样繁多,物质生活条件也越来越好,为孩子买几件玩……惊人的弱者逻辑我弱我有理生活中,我们经常看到这样一种现象,有些人天资和外在条件都很相似,可后来的结局却是大相径庭。这不由得让人感到困惑,到底是什么导致了开始两个相差无几的人,后面有了差距吗?俗话……35岁宝妈10年生5娃,如今肚里还揣一个,坦言还能生孩子还没有出生时,很多孕妇就想着赶快卸载,认为生下孩子就万事大吉了。殊不知,生下孩子后才是新的开始,照顾孩子,辅导作业,孩子的课外班花费,每一项都会对父母提出新的考验。生……晨起早于这个点,孩子一年比其他人少长5厘米,后期想弥补都很难有的父母总是早起,晨起的时间高于这个点,强迫孩子早起,孩子也要跟着父母早睡早起。长此以往,就会观察出来这种父母培养出来的孩子,个子总是要比别的孩子矮出来一大截,将近5厘米,这是……纽约时报畅销书榜首两性研究经典读本听懂另一半许多女性觉得事事咨询伴侣是一种自然而然的做法,但许多男性却会不自觉地在不咨询伴侣的情况下做出决定。这或许折射出了一种对决策这一概念的广泛存在的分歧。女性认为决策应当在讨论并达成……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网