首先还是下载PyOpenGL包:http://pypi.python.org/pypi/PyOpenGL/3.0.2

在Windows下,安装还是很简单的,安装程序会主动找到你的python目录,所以可以直接下一步。

安装好了后,就来写一个脚本测试一下~

test.py

from OpenGL.GL import *

from OpenGL.GLU import *

from OpenGL.GLUT import *

def Draw():

glClear(GL_COLOR_BUFFER_BIT)

glRotatef(0.5, 0, 1, 0)

glutWireTeapot(0.5)

glFlush()

glutInit()

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)

glutInitWindowSize(400, 400)

glutCreateWindow("test")

glutDisplayFunc(Draw)

glutIdleFunc(Draw)

glutMainLoop()

可以看到,在python中同样可以使用glut来创建窗口,语法遵从Python,但是大体上的结构还是和c语言的glut库差不多。

下面为一个时钟的例子

from OpenGL.GL import *

from OpenGL.GLU import *

from OpenGL.GLUT import *

import math

import  time

h=0

m=0

s=0

def Draw():

PI=3.1415926

R=0.5

TR=R-0.05

glClear(GL_COLOR_BUFFER_BIT)

glLineWidth(5)

glBegin(GL_LINE_LOOP)

for i in range(100):

glVertex2f(R*math.cos(2*PI/100*i),R*math.sin(2*PI/100*i))

glEnd()

glLineWidth(2)

for i in range(100):

glBegin(GL_LINES)

glVertex2f(TR*math.sin(2*PI/12*i),TR*math.cos(2*PI/12*i))

glVertex2f(R*math.sin(2*PI/12*i),R*math.cos(2*PI/12*i))

glEnd()

glLineWidth(1)

h_Length=0.2

m_Length=0.3

s_Length=0.4

count=60.0

s_Angle=s/count

count*=60

m_Angle=(m*60+s)/count

count*=12

h_Angle=(h*60*60+m*60+s)/count

glLineWidth(1)

glBegin(GL_LINES)

glVertex2f(0.0,0.0)

glVertex2f(s_Length*math.sin(2*PI*s_Angle),s_Length*math.cos(2*PI*s_Angle))

glEnd()

glLineWidth(5)

glBegin(GL_LINES)

glVertex2f(0.0,0.0)

glVertex2f(h_Length*math.sin(2*PI*h_Angle),h_Length*math.cos(2*PI*h_Angle))

glEnd()

glLineWidth(3)

glBegin(GL_LINES)

glVertex2f(0.0,0.0)

glVertex2f(m_Length*math.sin(2*PI*m_Angle),m_Length*math.cos(2*PI*m_Angle))

glEnd()

glLineWidth(1)

glBegin(GL_POLYGON)

for i in range(100):

glVertex2f(0.03*math.cos(2*PI/100*i),0.03*math.sin(2*PI/100*i));

glEnd()

glFlush()

def Update():

global h,m,s

t=time.localtime(time.time())

h=int(time.strftime('%H',t))

m=int(time.strftime('%M',t))

s=int(time.strftime('%S',t))

glutPostRedisplay()

glutInit()

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)

glutInitWindowSize(400, 400)

glutCreateWindow("My clock")

glutDisplayFunc(Draw)

glutIdleFunc(Update)

glutMainLoop()

python调用opengl_python的opengl操作相关推荐

  1. python调用opengl_Python运行OpenGL示例

    说明 python的opengl库叫PyOpenGL,安装这个库的时候要注意位数版本要正确,比如我的python37是32位的,安装PyOpenGL-3.1.5-cp37-cp37m-win32.wh ...

  2. hadooppythonjava_通过jpype实现python调用Hadoop Java Client操作HDFS

    通过python操作HDFS有非常好用的模块hdfs3 ,其底层依赖c++模块libhdfs3,起初libhdfs3不支持acl权限校验对于设置了acl权限的目录和文件会报NOTFOUND错误(现已解 ...

  3. python调用sql数据库_Python3操作SQL Server数据库(实例讲解)

    1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了. 2.最基本的SQL查询语句 python是使用pymssql这个模 ...

  4. python调用oracle数据库_python操作oracle数据库

    # -*- mode: python; coding: utf-8 -*- # # python operate oracle, contain insert.delete.update.select ...

  5. python调用word_Python操作Word

    有两种方式: 使用win32com 使用docx 1.使用win32com扩展包 只对windows平台有效 # coding=utf-8 import win32com from win32com. ...

  6. ElasticSearch 6.x 增删改查操作汇总 及 python调用ES中文检索实例

    文章目录 Error汇总 1. 由于Elasticsearch可以输入且执行脚本,为了系统安全,不允许使用root启动 2. 外部无法访问 3. 解决 max virtual memory areas ...

  7. python调用百度OCR识别证件+操作excel表格

    python调用百度OCR识别证件+操作excel表格 如果要操作文件的话最好让程序知道文件存不存在,因为做了GUI界面,报错不会直接弹出来,异常捕获就用得比较频繁 因为面向对象没学好,GUI是用工具 ...

  8. excel调用python编程-使用Python对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题.这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据.下面我们介绍如何实现使用Python对Exc ...

  9. python绘制函数图像opengl3d_写给 python 程序员的 OpenGL 教程

    原标题:写给 python 程序员的 OpenGL 教程 作者:牧马人 (本文来自作者投稿) 1预备知识 OpenGL 是 Open Graphics Library 的简写,意为"开放式图 ...

最新文章

  1. cnpm install -g generator-gulp-webapp yo gulp-webapp test-gulp-webapp
  2. 微软私有云分享(R2)8-PowerShell下载文件
  3. 创建Okhttp自定义Log
  4. Struts2中的配置文件--struts.properties文件
  5. css+图标偏移,css background-position 偏移的问题
  6. maven 的安装配置 和编译java程序
  7. c语言十六进制转换加H,c语言十六进制和十进制间的转换.docx
  8. ARCGIS RUNTIME FOR IOS总结(三)
  9. 超详细的jQuery的 DOM操作,一篇就足够!
  10. Hadoop的调度器总结(转)
  11. 动态加载Web Service
  12. MySQL数据库入门学习
  13. ERP进销存源码(进销存ERP系统)
  14. 推荐系统之GBDT+LR
  15. 《基因大数据智能生产及分析》笔记
  16. Hyper-v功能介绍和操作演示
  17. SAP MM模块库存结存报表
  18. 动态规划 - 买卖股票
  19. java pfx 和cer_pfx证书和CER证书
  20. 循环肿瘤细胞(circulating tumor cells,CTCs)

热门文章

  1. 数据治理需要注意什么问题
  2. 大数据如何助力农业发展
  3. AcWing 895. 最长上升子序列(LIS朴素做法)
  4. linux上的手机管家,闪电手机管家极速版
  5. 算法基础部分3-动态规划
  6. linux 提取有效源码,MPSOC之4——petalinux提取源码
  7. linux 安装org2pg_Ora2Pg的安装和使用
  8. Shell脚本编程之(五)条件判断式
  9. scipy.sparse、pandas.sparse、sklearn稀疏矩阵的使用
  10. keras系列︱keras是如何指定显卡且限制显存用量(GPU/CPU使用)