返回顶部
首页 > 资讯 > 后端开发 > Python >Python OpenGL如何配置
  • 575
分享到

Python OpenGL如何配置

2023-06-30 15:06:10 575人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python OpenGL如何配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python OpenGL如何配置”文章能帮助大家解决问题。OpenGL基本配置

这篇文章主要介绍“python OpenGL如何配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python OpenGL如何配置”文章能帮助大家解决问题。

OpenGL基本配置方式

pip 安装 PyOpenGL

pip install PyOpenGL PyOpenGL_accelerate

测试代码

from OpenGL.GL import *from OpenGL.GLU import *from OpenGL.GLUT import * def init():    glClearColor(1,1,1,1)    gluOrtho2D(-1,1,-1,1) def triangle():    glClear(GL_COLOR_BUFFER_BIT)    glColor3f(1,0,0)    glBegin(GL_TRIANGLES)     glColor3f(1,0,0)    glVertex2f(-1, -1)        glColor3f(0,1,0)    glVertex2f(1, -1)        glColor3f(0,0,1)    glVertex2f(0, 1)        glEnd()    glFlush() def main():    glutInit(sys.argv)    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)    glutInitwindowsize(800,600)    glutInitWindowPosition(50,50)    glutCreateWindow("Triangle")    glutDisplayFunc(triangle)    init()    glutMainLoop() if __name__ == '__main__':    main()

运行结果,绘制出一个彩色三角形:

Python OpenGL如何配置

Python+OpenGL库理解及代码应用

1.读取off文件

使用工具库(GLUT)创建 OpenGL 应用程序只需要四步:

(1)初始化glut库:glutInit()

(2)创建glut窗口:glutCreateWindow('Quidam Of OpenGL')

(3)注册绘图的回调函数: glutDisplayFunc(draw)

(4)进入glut主循环: glutMainLoop()

除了基本组成以外还可以:

(5)设置窗口初始显示模式:初始化 glut 库的时候,一般要用 glutInitDisplayMode() 来设置初始的显示模式。例如:

glutInitDisplayMode( GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH)

 (6)初始化画布

glClearColor(0.0, 0.0, 0.0, 1.0) # 设置画布背景色。注意:这里必须是4个参数glEnable(GL_DEPTH_TEST)          # 开启深度测试,实现遮挡关系glDepthFunc(GL_LEQUAL)           # 设置深度测试函数

关于draw()函数的基本组成:

(1)清除屏幕及深度缓存

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

(2)设置投影

投影设置也是每次重绘都需要的步骤之一。glOrtho() 用来设置平行投影,glFrustum() 用来设置透视投影。这两个函数的参数相同,都是视景体的 left / right / bottom / top / near / far 六个面。视景体的 left / right / bottom / top 四个面围成的矩形,就是视口。near 就是投影面,其值是投影面距离视点的距离,far 是视景体的后截面,其值是后截面距离视点的距离。far 和 near 的差值,就是视景体的深度。视点和视景体的相对位置关系是固定的,视点移动时,视景体也随之移动。假设 view 是视景体,width 和 height 是窗口的宽度和高度,在投影变换之前,需要先声明是对投影矩阵的操作,并将投影矩阵单位化:

glMatrixMode(GL_PROJECTION)   ,含义为选定矩阵为模型-观察变换 矩阵

OpenGL中的变换命令都是对当前矩阵(当前矩阵为以后图形变换所要使用的矩阵)进行操作,因此在选定可修#改矩阵后,应首先用glLoadIdentity()命令设置当前操作矩阵为单位矩阵

glMatrixMode(GL_PROJECTION)glLoadIdentity()if width > height:  k = width / height  glFrustum(view [0]*k, view [1]*k, view [2], view [3], view [4], view [5])else:  k = height / width  glFrustum(view [0], view [1], view [2]*k, view [3]*k, view [4], view [5])

 (3)设置视点

视点是和视景体关联的概念。设置视点需要考虑眼睛在哪儿、看哪儿、头顶朝哪儿,分别对应着eye, lookat 和 eye_up 三个向量.

gluLookAt(       #设置相机在世界坐标系中的位置       eye[0], eye[1], eye[2],        #相机镜头对准的物体在世界坐标系中的位置       look_at[0], look_at[1], look_at[2],   #相机向上的方向在世界坐标系中的方向       eye_up[0], eye_up[1], eye_up[2]   )

(4)设置视口 

视口的大小和尺寸是在窗口坐标系中进行度量的, 默认状 态下其坐标原点位于窗口的左下角,其尺寸与窗口的大小 相同

#glViewport(GLint x, Glint y, Glsizei width, Glsizei height)glViewport(0, 0, width, height)

(5)设置模型变换

模型平移、旋转、缩放等几何变换,需要切换到模型矩阵:

glMatrixMode(GL_MODELVIEW)glLoadIdentity()#平移操作函数glTanslate(x,y,z)#平移,(x,y,z,1)乘以 N(4x4矩阵)进行矩阵变换glMultMatrixf(N)#旋转函数,绕矢量v=(x,y,z)T逆时针方向旋转angle指定的角度。  glRotate(angle,x,y,z)#缩放函数glScale(1.0, 1.0, 1.0)

同时使用视图变换和模型变换,需要先调用视图变换函数,后调用模型变换函数,以保证模型变换首先对物体起作用。

多种变换组合调用顺序 ,写函数的时候要注意顺序,否则可能不起作用

Python OpenGL如何配置

具体代码分析

from OpenGL.GL import *from OpenGL.GLU import *from OpenGL.GLUT import *import numpy as np def readOFF():    file_path = '../off/m1.off'    f = open(file_path, 'r', encoding='utf-8')    lines = f.readlines()    m = []    n = []    #把off文件中数据按行读取出来,存储到列表中,由于边数事先看了为0,所以没遍历边,如果边不为0,记得遍历,并在后文加上边的绘制    for line in lines:        m.append(line.split())    for i in range(len(m)):        #跳过第一行的OFF        if m[i][0] == 'OFF':            continue        #记录定点数,面片数和边数        elif i == 1:            v_cout = int(m[i][0])            f_count = int(m[i][1])            e_count = int(m[i][2])            continue        #把字符型数据转化为数值型数据        else:            for j in range(len(m[i])):                m[i][j] = float(m[i][j])            n.append(m[i])    return v_cout, f_count, e_count, n  #绘画模型def draw():    global angle    #读取OFF文件包含的顶点,面片,边和off文件存储数据信息    v_cout, f_count, e_count, n = readOFF()    # 设置渲染背景    glClearColor(0.0, 0.0, 0.0, 0.0)    #清除缓存    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)    # 设置投影(透视投影)    glMatrixMode(GL_PROJECTION)    glLoadIdentity()    # 投影变换    gluPerspective(100, 1, 0.5, 100)     angle += 0.05    while angle > 360:        angle -= 360    glMatrixMode(GL_MODELVIEW)    glLoadIdentity()    # 视口变换    glViewport(100, 100, 500, 500)    #设置观察变换    #设置视点    gluLookAt(        -5, 5, 0,        0, 0, 0,        0, 1, 0,    )    #设置模型变换    #平移    glTranslate(1, 1, 0)    #旋转    glRotatef(angle, -5, 5, 0)    # 缩放    glScalef(5, 5, 5)     for i in range(f_count):        #获取顶点个数,和顶点信息        cout , a, b, c = n[v_cout + i]        cout, a, b, c=int(cout) ,int(a) ,int(b) ,int(c)        #得到顶点位置        a1, a2, a3 = n[a]        b1, b2, b3 = n[b]        c1, c2, c3 = n[c]        #绘制多面体        glBegin(GL_POLYGoN)        glVertex3f(a1, a2, a3)        glVertex3f(b1, b2, b3)        glVertex3f(c1, c2, c3)        glEnd();    # 刷新缓存    glFlush() #关闭窗口def close(key,x,y):    if key==b'\x1b':        glutDestroyWindow(win_id) if __name__ == "__main__":    angle = 0    # 初始化glut窗口    glutInit()    # 设置窗口显示模式:RGBA四通道|单缓存|深度    glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH)    # 初始化窗口大小    glutInitWindowSize(1000, 800)    # 创建窗口    win_id = glutCreateWindow("CUBE")    # 设置渲染函数    glutDisplayFunc(draw)    # 设置窗口空闲时函数    glutIdleFunc(draw)    # 开启深度测试    glEnable(GL_DEPTH_TEST)    # 开启窗口主循环    glutMainLoop()

关于“Python OpenGL如何配置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Python OpenGL如何配置

本文链接: https://lsjlt.com/news/329836.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python OpenGL如何配置
    这篇文章主要介绍“Python OpenGL如何配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python OpenGL如何配置”文章能帮助大家解决问题。OpenGL基本配置...
    99+
    2023-06-30
  • Python OpenGL基本配置
    参考:http://pyopengl.sourceforge.net 一、pip 安装 PyOpenGL pip install PyOpenGL PyOpenGL_accelerate 二、测试代码 from OpenGL....
    99+
    2023-01-31
    基本配置 Python OpenGL
  • Python OpenGL基本配置方式
    目录OpenGL基本配置方式pip 安装 PyOpenGL测试代码Python+OpenGL库理解及代码应用1.读取off文件OpenGL基本配置方式 参考:http://pyope...
    99+
    2024-04-02
  • OpenGL:VisualStudio2022配置OpenGL环境
    OpenGL撸了有一段时间了,一直没空好好捋一捋总结一下,尤其是OpenGL的环境配置,换个开发环境就要重新配一遍,其实也没多复杂,就是繁琐了点,做个说明文档方便以后配置。 一.安装VisualStudio2022 这个不需要多讲解了,微软...
    99+
    2023-09-15
    visual studio 图像处理 图形渲染 android
  • Python安装配置OpenGL环境的全过程记录
    最近学习计算机图形学,需要使用OpenGL,踩了很多雷,最后终于成功了,总结了一下教程和一些踩雷心得 环境:win10_64位系统、PyCharm(本人使用的是python3.8版本...
    99+
    2024-04-02
  • Android中的OpenGL怎么配置使用
    这篇文章主要介绍“Android中的OpenGL怎么配置使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android中的OpenGL怎么配置使用”文章能帮助大家解决问题。介绍Android 可通...
    99+
    2023-07-05
  • Android中的OpenGL使用配置详解
    目录引言介绍GLSurfaceViewEGL配置渲染setDebugFlags和setGLWrapper渲染器Renderer坐标映射绘制三角形绘制效果引言 PS:虽然感觉好久没更...
    99+
    2023-02-28
    Android OpenGL配置 Android OpenGL
  • pycharm如何配置python
    配置步骤:1、打开PyCharm并打开您的项目;2、进入菜单栏中的“File”选项;3、选择“Settings”;4、在设置窗口中,找到“Project: [Your Project Name]”下的“Python Interpreter”...
    99+
    2023-12-09
    pycharm python
  • (超级详细)如何在Mac OS上的VScode中配置OpenGL环境并编译
    文章目录 安装环境下载GLAD与GLFW一、下载GLAD二、下载GLFW 项目结构配置测试程序与项目的编译测试可执行文件HelloGL 安装环境 机器:macbook...
    99+
    2023-09-02
    vscode ide 编辑器 openGL
  • Python日志如何配置
    配置配置倾向只输出到文件按时间轮转,默认7d日志格式:只记录必要的信息import logging from logging.handlers import TimedRotatingFileHandler from os import p...
    99+
    2023-05-24
    Python
  • 如何配置python连接oracle
    这篇文章将为大家详细讲解有关如何配置python连接oracle,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、配置python连接oracle并测试成功网上有不少教程,但大部分都没那么详细,并且也没有...
    99+
    2023-06-14
  • Python如何配置文件yaml
    今天小编给大家分享一下Python如何配置文件yaml的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。YAML是一种直观的能够...
    99+
    2023-06-29
  • visual如何配置Python环境
    要配置Python的环境,您可以按照以下步骤进行操作: 下载Python:首先,您需要从Python官方网站(https://w...
    99+
    2023-10-27
    visual Python
  • python运行配置如何调
    调整Python运行配置的方式取决于您正在使用的Python集成开发环境(IDE)或编辑器。以下是一些常见的Python IDE和编...
    99+
    2024-02-29
    python
  • python MySQLdb如何配置python链接MYSQL
    这篇文章给大家介绍python MySQLdb如何配置python链接MYSQL,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 1、下载 MySQL for...
    99+
    2024-04-02
  • OpenGL Shader抗锯齿如何实现
    这篇文章主要为大家展示了“OpenGL Shader抗锯齿如何实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“OpenGL Shader抗锯齿如何实现”这篇文章吧。绘制圆形...
    99+
    2023-06-29
  • Visual studio2022 利用glfw+glad配置OpenGL环境的详细过程
    目录1. 安装visual studio 20222. 配置openGL环境2.1 glfw2.1.1 安装glfw包2.1.2 在visual studio 中配置glfw2.2 ...
    99+
    2022-11-13
    Visual studio2022配置OpenGL环境 glfw glad配置OpenGL环境
  • 如何配置python环境变量
    配置python环境变量的方法:1.右键此电脑,进行“属性”;2.点击“高级系统设置”3.点击“环境变量”;4.编辑“path”选项;5.添加python安装路径,确认即可;配置python环境变量的方法首先,在计算机中右键此电脑,选择“属...
    99+
    2024-04-02
  • 如何安装配置Python环境
    本篇内容介绍了“如何安装配置Python环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!01 初见PythonPython编程语言是荷兰人...
    99+
    2023-06-15
  • python爬虫环境如何配置
    要配置Python爬虫环境,需要按照以下步骤进行操作: 安装Python:首先,确保你的计算机上安装了Python。从Pytho...
    99+
    2023-10-24
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作