opengl安装教程(手机查看opengl版本)

1说明: 1.1利用python的pygame和OpenGL制作动态正方体cube。 1.2安装python3.8和pygame(省略)。 1.3安装OpenGL: pipinstallPyOpenGLPyOpenGL_accelerate 2效果图:先看。 3完整代码: #—导出模块— importpygame frompygame.localsimport* fromOpenGL.GL…

1 表明:

1.1 利用python的pygame和OpenGL制做动态正方体cube。

1.2 安裝python3.8和pygame(省去)。

1.3 安裝OpenGL:

pip install PyOpenGL PyOpenGL_accelerate
OpenGL和pygame画动态正方体cube的代码和python的元组复习

2 设计效果图:首先看。

OpenGL和pygame画动态正方体cube的代码和python的元组复习

3 详细代码:

#---导出来控制模块---
import pygame
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.GLU import *

#---复位pygame和定义对话框尺寸---
pygame.init()
#OPENGL|DOUBLEBUF=DOUBLEBUF|OPENGL
#DOUBLEBUF:双缓存方式(强烈推荐和 HWSURFACE 或 OPENGL 一起应用)
#建立一个 OPENGL 3D渲染的表明
pygame.display.set_mode((640,480), OPENGL|DOUBLEBUF)

#---元组定义---
#定义正方体的xyz座标点
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))
#定义RGB色调
CUBE_COLORS = ((1, 0, 0), (1, 1, 0), (0, 1, 0), (0, 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),)

#---定义画正方体函数公式---
def drawcube():
    # \"制作正方体\",zip和list法
    allpoints = list(zip(CUBE_POINTS, CUBE_COLORS))
    #画总面积---逐渐---完毕---
    glBegin(GL_QUADS)
    for face in CUBE_QUAD_VERTS:
        for vert in face:
            pos, color = allpoints[vert]
            #在第2个for下边
            glColor3fv(color)
            glVertex3fv(pos)
    #与第1个for两端对齐
    glEnd()

    #边框线色调灰黑色
    glColor3f(0, 0, 0)

    # 制作线---逐渐---完毕---
    glBegin(GL_LINES)
    for line in CUBE_EDGES:
        for vert in line:
            pos, color = allpoints[vert]
            glVertex3fv(pos)
    glEnd()

#---主函数---
def main():
    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)
    #运行循环系统---
    while True:
        #事情检验
        event = pygame.event.poll()
        #定义激励制度,在pygame的while循环系统中,这一步必不可少设定
        if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
            break
        #消除显示屏
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
        #监控摄像头转动
        glRotatef(1,0,1,0)
        drawcube()
        #更新界面
        pygame.display.flip()

if ._name__ == \'._main__\':
    main()

4 元组的定义和推论式:

#---元组定义---
#定义正方体的xyz座标点
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))
#定义RGB色调
CUBE_COLORS = ((1, 0, 0), (1, 1, 0), (0, 1, 0), (0, 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),)

# \"制作正方体\"
allpoints = list(zip(CUBE_POINTS, CUBE_COLORS))

#print(allpoints)
#print(allpoints[0])
for face in CUBE_QUAD_VERTS:
    for vert in face:
        pos, color = allpoints[vert]
        #print(allpoints[vert])
        print(pos)
        print(color)

5 简单化一些:那样很了解一些。

#---元组定义---
#定义正方体的xyz座标点
a = ((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色调
b = ((1, 0, 0), (1, 1, 0), (0, 1, 0), (0, 0, 0),(1, 0, 1), (1, 1, 1), (0, 0, 1), (0, 1, 1))
# 定义面,四个点组成一个面
c = ((0, 1, 2, 3), (3, 2, 7, 6), (6, 7, 5, 4),(4, 5, 1, 0), (1, 5, 7, 2), (4, 0, 3, 6))
# 定义线,两个点构成一个线
d = ((0,1), (0,3), (0,4), (2,1), (2,3), (2,7),(6,3), (6,4), (6,7), (5,1), (5,4), (5,7),)

# \"制作正方体\"
all = list(zip(a, b))

#print(all)
#print(all[0])
for j in c:
    for i in j:
        pos, color = all[i]
        #print(all[i])
        print(pos)
        print(color)

5.1 元组的元组

5.2 zip函数

5.3 list函数公式:原本是目录的含意,发觉或是元组,是元组的目录装包法。

5.4 推论式嵌入推论式和元组推导器转化成的制作器。

for j in c:
    for i in j:
       #一行取值
        pos, color = all[i]

6 备考基本知识:

6.1 元组:

元组与目录相近,不同点取决于元组的原素不可以改动。

元组中只包括一个原素时,必须在原素后边加上分号。

元组的字符数据库索引从0逐渐,可以开展提取,组成等。

元组中的原素值是不允许删掉的,但我们可以应用del句子来删掉全部元组。

6.2 zip函数:

是Python的内嵌函数公式。

用以将可梯度下降法的目标做为主要参数,将目标中相应的原素装包成一个个元组,随后回到由这种元组构成的目录。

zip 方式在 Python 2 和 Python 3 中的不一样:在 Python 3.x 中为了更好地降低运行内存,zip() 回到的是一个目标。如需展现目录,需手动式 list() 变换。

6.3 元组推论器转化成的制作器。

a=(255,35,55,45,85,550,650)
b=(x for x in a if x<100)
for i in b:
    print(i,end=\' \')

print(tuple(b)) #最终b元组里边没了

以上实行結果:

35 55 45 85 ()

根据元组推论器转化成的制作器目标可以根据for循环开展解析xml。

每浏览制作器目标中的一个原素,便会少一个原素。

如要再应用该制作器目标,都需要再次建立一个制作器,由于解析xml后的原制作器目标已经找不到了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月8日 下午1:15
下一篇 2022年5月8日 下午1:17

相关推荐

  • 联想thinkpadx1笔记本(联想ThinkPad X1 Carbon评测)

    经常有人向外媒NeoWin的资深编辑RichWoods咨询笔记本的选购事宜,而他推荐最多的就是联想的ThinkPadX1系列。如果你想要变型,驾驭各种情境需求,那么可以选择X1Yoga;如果你想要一款轻薄的超极本,那么X1Carbon往往是最佳选择。至于推荐的理由有很多,包括卓越的外观设计、强悍的性能输出、稳定和省心的系统和应用支持,优秀的DolbyVision屏幕等等。而在这些卖点基础上,201…

    2022年10月18日
    470
  • 职场人士应该具备哪些能力(职场需要的18种能力)

    1、统驭全局能力 一个优秀的管理者,无论是管理一个部门还是管理整个公司,必须有开阔的视野和全局的观念,而不能囿于小圈子,考虑小利益。在管理实践中,熟知矛盾性,掌握方法论,这样才能做到抓住事物主要矛盾,治大国如烹小鲜,实现管理工作提纲挈领,举重若轻。 管理其实很简单,治国好比烹小鲜, 2、执行落地能力 管理中有一句经典:理解的要执行,不理解的在执行中理解。方针制定以后,执行就是致胜的关键因素,可以说…

    2022年10月22日
    3210
  • 域名被墙是什么意思,域名被墙查询检测方法

    域名被墙怎么查询?有哪些方法?很多新手估计都不知道什么是域名被墙,当域名被墙时,很多人都不知道,那么怎么判断一个域名是否被墙呢?有什么方法?下面聚名网小编就为大家介绍一下域名是如何被墙的和怎么查询域名被墙。 域名被墙怎么查询?有哪些方法?(推荐阅读:抢注域名有什么要注意的?如何进行域名抢注?) 一、域名被墙:如果域名ping的通却打不开网站(排除服务器宕机),用代理或者使用VPN可以打开一般说明域…

    2022年7月14日
    1020
  • 产品助理简历怎么写(最新0经验产品经理简历分享)

    基本信息 姓名:七分简历 年龄:23岁 电话:139****4698 邮箱:334718****@qq.com 经验:1年 意向:产品助理 教育背景 时间:2012-09-2016-06 学校:【七分简历】财经大学|专业:软件工程|学历:本科 工作经历 工作时间:2016-07-2017-07 公司名称:【七分简历】信息科技有限公司|所在部门:|所在岗位:审核编辑 工作描述: 1、APP审核(新增…

    2022年10月16日
    390
  • 开淘宝网店要多少钱,新手开淘宝店各项费用介绍

    有人说10万以上的可以算大投入了,有人说几千块钱就足够了。有一句话还是非常有道理的:网店创业要舍得投钱才有成功的机会,舍不得投钱又不努力的一定不会成功。 2010年,有朋友抱着月入一万的期望开了淘宝店,本来想着试个手生意不行就撤。结果看着别人的淘宝小店做爆款月入十万,他又不甘心就这么放弃了,然后这一做就是好几年。去年是他开店的第八个年头,店铺终于做到5心了。跟我们吃饭的时候还在讲他的生意,大概意思…

    2022年9月24日
    470
  • 虚拟主机哪家稳定,最好用又便宜的虚拟主机品牌推荐

    虚拟主机哪些牌子好?新手选择虚拟主机有何技巧?相信很多人都会有这样的疑问,下面聚名网为你详解一下以上问题。 一个快速稳定的虚拟主机对于网站的运营和流量的提升至关重要。尤其是对做优化的站长而言,虚拟主机不好会严重影响到收录和排名,严重的甚至被K站。 虚拟主机选什么牌子好,主要从:虚拟主机稳定性、虚拟主机速度、虚拟主机适用环境、虚拟主机安全防护能力、虚拟主机价格、虚拟主机商售后服务和技术支持等方面来判…

    2022年8月18日
    610
  • 不出门在家赚钱的工作有哪些,十个宅在家里最赚钱的工作推荐

    现在的交通非常拥挤,而房价又非常贵,很多人买房都买在交通不方便的郊区,每天得一大早起来去市区上班,挤公交、挤地铁是必做的一件事情。一去一回,花在路上的时间至少有两个小时,将这些时间节省下来,可以让做很多其他的事情,下面,介绍十种在家赚钱的方式。 1、自媒体,可以去百家号、大鱼号等平台注册账号运营,发布自己擅长领域的文章,积累一定的粉丝,可以实现资金的变现。 2、主播,只要你有上等的容颜,或者是某方…

    2022年7月22日
    620
  • 苹果微信记录恢复教程,用手机恢复大师三分钟迅速搞定

    微信是我们日常沟通交流的必备APP了,几乎每台手机都会安装,长期积累下来,聊天记录就会越来越多,有时候无关紧要的消息太多了,我们就会想到要删除一部分,但是常常会出现误删的情况,甚至是重要的资料消息都被删除了,微信手机端本身又没有恢复功能,这个时候,只能借助其他工具来帮助完成资料恢复了,以下就是可用的几种方法: 方法一:电脑备份恢复苹果微信聊天记录 如果你已经将微信消息备份到电脑微信中,那么就可以直…

    2022年6月10日
    820
  • 微信怎么群发消息但不要建群,99%的人都还不知道的小秘诀

    微信如何不建群就能群发消息?这个小诀窍你知道了吗? ▼ 不知道大家有没有遇到过这样一种情况 转发消息给多个好友,结果发现把大家拉进了一个群里,可以说是非常尴尬了。 那为了避免这种情况,我们只能一个个地发消息? ▼ 别担心,让微信自带的「群发助手」来帮忙! 具体操作如下: 1.找到「我」-「设置」-「通用」-「功能」 2.点击「群发助手」-「开启群发」 未启用的话需要先开启此功能。 3.「新建群发」…

    2022年10月3日
    770
  • 地摊小生意卖什么好,16种最赚钱的地摊生意

    摆地摊卖什么最赚钱而且很受欢迎?摆地摊二十大暴利产品,哪一种适合你呢? 中央文明办在今年的全国文明城市测评指标中,未将占道经营、马路市场、流动商贩列为文明城市测评考核内容,很多城市因此也放松了对地摊商贩的管控,那么摆地摊卖什么最赚钱而且很受欢迎呢? 摆地摊是一种成本费用极少,赚取利润很高的一种方式,所以只要你找到一种好的地摊生意和销售方法,你的生意应该会非常好的,所以想一下摆地摊卖什么最赚钱又受欢…

    2022年10月6日
    630

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信