在win7+python3.5环境下配置opengl,并显示三维模型

首先安装opengl:

已经安装python的系统会自动安装pip,所以只需要一句pip命令就可以安装opengl了,命令如下:

pip install PyOpenGL PyOpenGL_accelerate	

然后在python 中import相关功能,运行后会出现错误

OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling

SyntaxError: multiple statements found while compiling a single statement

可能是缺少相关dll文件,可以在这里下载到     http://pan.baidu.com/s/1dFhC8G5

拷到你建立的工程目录下,就是你写的程序的目录下就可以了。

然后运行下面的程序,就应该能够显示茶壶模型了。

from OpenGL.GL import *

from OpenGL.GLU import *
from OpenGL.GLUT import *
def drawFunc():
#清楚之前画面
glClear(GL_COLOR_BUFFER_BIT)
glRotatef(0.1, 0,5,0)   #(角度,x,y,z)
glutWireTeapot(0.5)
#刷新显示
glFlush()
#使用glut初始化OpenGL
glutInit()
#显示模式:GLUT_SINGLE无缓冲直接显示|GLUT_RGBA采用RGB(A非alpha)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)
#窗口位置及大小-生成
glutInitWindowPosition(0,0)
glutInitWindowSize(400,400)
glutCreateWindow(b"first")
#调用函数绘制图像
glutDisplayFunc(drawFunc)
glutIdleFunc(drawFunc)

glutMainLoop()

from OpenGL.GL import *from OpenGL.GLU import *from OpenGL.GLUT import *def drawFunc():    #清楚之前画面    glClear(GL_COLOR_BUFFER_BIT)    glRotatef(0.1, 0,5,0)   #(角度,x,y,z)    glutWireT tu_00_glfw_window_sample:GLFW版本彩色立方体。 原始教程=> tu_01_color_cube:GLUT版本彩色立方体。 原始教程=> tu_02_texture_without_normal:带纹理的基本渲染。 原始教程=> tu_03_loadobj:从wavefont obj文件加载网格信息: 原始教程=> tu_04_vbo:使用VBO 原始教程=> tu_05_input:使用键盘和鼠标添加视口控件原始教程=> tu_06_multobjs:在同一窗口中绘制多个网格对象 tu_07_basic_shading:带有光照和法线的基本着色原始教程=> tu_08_transparency:透明度原始教程=> tu_09_draw_text:在 openGL 中绘制文本原始教程=> tu_10_normal_mapping:法线贴图原始教程=>
设计一个 三维 模型 模型 可以旋转、缩放、平移和反射变换。 要求: (1) 模型 有三个以上的基本体素; (2) 模型 具有多种颜色; (3)以键、菜单、鼠标方式来控制各种变换;(至少采用一种方式) (4)鼓励有创意的 模型 。#encoding=utf8 from OpenGL .GL import * from OpenGL .GLU import * from OpenGL .GLUT import * impor
说实话我们 OpenGL 的基础还远远没有学完,不过我在说下去大概就不会有人看了,所以,虽然稍稍有些早,开始我们的第一个程序吧。 from OpenGL .GL import * from OpenGL .GLU import *
这次的作业太忙了没空写,直接把同学的c++代码改成了 python 代码,至于里面写了什么完全不知道=.= from OpenGL .GL import * from OpenGL .GLU import * from OpenGL .GLUT import *dX = 0.0 dY = 0.0 alphaX = 0.0 alphaY = 0.0 alphaZ = 0.0 sf = 0.0 def i
上一次,我们有了一个足够 3D 的程序了,虽然很漂亮,但是那个茶壶并不是我们画出来的,glut带给我们的便利而已。从现在开始我们就得自己动手丰衣足食了,为了达到这一点,我们得再了解一些 OpenGL 的一些知识。 如右图所示,你必须知道构成我们 3D 图像的最小单位,它们往往被称为图元。 点,在 OpenGL 中,这是最基本的图元,比如说图中红色的那个点。线,比如左图中粉色的那根。
Python 中可以使用 PyOpenGL 库来实现 OpenGL 的功能,实现 三维 图形的 显示 和操作。 首先,可以使用 OpenGL 的glut库来创建窗口和处理输入事件。创建一个窗口后,可以使用 OpenGL 的glClearColor函数来设置背景颜色,使用glClear函数来清除窗口。然后,使用glMatrixMode函数来设置矩阵模式为GL_MODELVIEW,使用glLoadIdentity函数来重置矩阵。 接下来,可以使用glTranslatef函数来平移物体,传入三个参数来设定平移的距离。使用glRotatef函数来旋转物体,传入四个参数来设定旋转的角度和旋转轴的坐标。使用glScalef函数来缩放物体,传入三个参数来设定缩放的比例。 为了实现光照效果,需要先启用光照功能,可以使用glEnable函数来启用光照。然后,使用glLightfv函数来设置光源的属性,例如光源的位置、光源的颜色、光照强度等。还可以使用glEnable函数来启用光照的不同组成部分,例如启用环境光、漫反射光和镜面光。 最后,使用 OpenGL 的glutMainLoop函数来进入主事件循环,处理窗口的输入事件和渲染。 以上就是用 Python OpenGL 实现 三维 图形的旋转、平移、缩放和光照的基本步骤。需要注意的是,这只是一个简单的介绍,实际编写时还需根据具体的需求进行更详细的操作和调整。
Traceback (most recent call last): File "stl-point.py", line 6, in <module> content=infile.read() #将所有stl数据读到content中 UnicodeDecodeError: 'gbk' codec can't decode byte 0xd2 in position 96: illegal multibyte sequence python下stl格式转换off格式 2232661644: 博主,想问一下,运行代码是报错了[code=python] import os import re #正则表达式 import time start=time.clock()#记录程序开始时间 with open(r'C:\Users\Administrator\Desktop\Volumetric\2019-08-22_001_001-UpperJaw-3003after.stl','r') as infile: content=infile.read() #将所有stl数据读到content中 reg='vertex (.*?)\n'#正则 vertexs=re.findall(reg,content)#保存所有在'vertexs'和回车之间的数据 print("未去重前的点个数:",len(vertexs)) s=sorted(set(vertexs),key=lambda x:(x))#排序,去除重复点 print("去除重复点后点个数:",len(s)) [/code]