python调用opengl_python的opengl操作
首先还是下载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操作相关推荐
- python调用opengl_Python运行OpenGL示例
说明 python的opengl库叫PyOpenGL,安装这个库的时候要注意位数版本要正确,比如我的python37是32位的,安装PyOpenGL-3.1.5-cp37-cp37m-win32.wh ...
- hadooppythonjava_通过jpype实现python调用Hadoop Java Client操作HDFS
通过python操作HDFS有非常好用的模块hdfs3 ,其底层依赖c++模块libhdfs3,起初libhdfs3不支持acl权限校验对于设置了acl权限的目录和文件会报NOTFOUND错误(现已解 ...
- python调用sql数据库_Python3操作SQL Server数据库(实例讲解)
1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了. 2.最基本的SQL查询语句 python是使用pymssql这个模 ...
- python调用oracle数据库_python操作oracle数据库
# -*- mode: python; coding: utf-8 -*- # # python operate oracle, contain insert.delete.update.select ...
- python调用word_Python操作Word
有两种方式: 使用win32com 使用docx 1.使用win32com扩展包 只对windows平台有效 # coding=utf-8 import win32com from win32com. ...
- ElasticSearch 6.x 增删改查操作汇总 及 python调用ES中文检索实例
文章目录 Error汇总 1. 由于Elasticsearch可以输入且执行脚本,为了系统安全,不允许使用root启动 2. 外部无法访问 3. 解决 max virtual memory areas ...
- python调用百度OCR识别证件+操作excel表格
python调用百度OCR识别证件+操作excel表格 如果要操作文件的话最好让程序知道文件存不存在,因为做了GUI界面,报错不会直接弹出来,异常捕获就用得比较频繁 因为面向对象没学好,GUI是用工具 ...
- excel调用python编程-使用Python对Excel进行读写操作
学习Python的过程中,我们会遇到Excel的读写问题.这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据.下面我们介绍如何实现使用Python对Exc ...
- python绘制函数图像opengl3d_写给 python 程序员的 OpenGL 教程
原标题:写给 python 程序员的 OpenGL 教程 作者:牧马人 (本文来自作者投稿) 1预备知识 OpenGL 是 Open Graphics Library 的简写,意为"开放式图 ...
最新文章
- cnpm install -g generator-gulp-webapp yo gulp-webapp test-gulp-webapp
- 微软私有云分享(R2)8-PowerShell下载文件
- 创建Okhttp自定义Log
- Struts2中的配置文件--struts.properties文件
- css+图标偏移,css background-position 偏移的问题
- maven 的安装配置 和编译java程序
- c语言十六进制转换加H,c语言十六进制和十进制间的转换.docx
- ARCGIS RUNTIME FOR IOS总结(三)
- 超详细的jQuery的 DOM操作,一篇就足够!
- Hadoop的调度器总结(转)
- 动态加载Web Service
- MySQL数据库入门学习
- ERP进销存源码(进销存ERP系统)
- 推荐系统之GBDT+LR
- 《基因大数据智能生产及分析》笔记
- Hyper-v功能介绍和操作演示
- SAP MM模块库存结存报表
- 动态规划 - 买卖股票
- java pfx 和cer_pfx证书和CER证书
- 循环肿瘤细胞(circulating tumor cells,CTCs)