gl (SGI IRIX) - Python 中文开发手册
自2.6版以来已弃用:该gl模块已在Python 3中删除。
此模块提供对Silicon Graphics 图形库的访问。它仅适用于Silicon Graphics机器。
警告
对GL库的一些非法调用导致Python解释器转储核心。特别是,在打开第一个窗口之前,使用大多数GL呼叫是不安全的。
该模块太大,无法完整记录,但以下内容可帮助您开始使用。C函数的参数约定被转换为Python,如下所示:
所有(short,long,unsigned)int值由Python整数表示。 所有float和double值都由Python浮点数表示。在大多数情况下,Python整数也是允许的。所有数组都由一维Python列表表示。在大多数情况下,元组也是允许的。所有的字符串和字符参数通过Python字符串来表示,例如,winopen('Hi There!')和rotate(900, 'z')。所有(short,long,unsigned)整数参数或返回值仅用于指定数组参数的长度。例如,C调用
lmdef(deftype, index, np, props)
被翻译为Python
lmdef(deftype, index, props)
输出参数从参数列表中省略; 它们将作为函数返回值进行传输。如果必须返回多个值,则返回值是一个元组。如果C函数同时具有常规返回值(由于前面的规则而不会被省略)和输出参数,则返回值将首先出现在元组中。示例:C调用
getmcolor(i, &red, &green, &blue)
被翻译为Python
red, green, blue = getmcolor(i)
以下功能是非标准的或有特殊的参数约定:
gl.varray(argument)
相当于但比v3d()调用更快。 该参数是点的列表(或元组)。 每个点必须是坐标(x,y,z)或(x,y)的元组。 点可以是二维或三维的,但必须都具有相同的尺寸。 然而,Float和int值可能会混合在一起。 如果需要(如手册页中所示),则假设z = 0.0,并且每个点调用v3d(),则始终将点转换为3D双精度点。
gl.nvarray()
相当于但快于n3f和v3f调用。 参数是一对法线和点的数组(列表或元组)。 每一对都是一个点的元组和一个正常的点。 每个点或法线必须是坐标(x,y,z)的元组。 必须给出三个坐标。 Float和int值可能会混合在一起。 对于每一对,都调用n3f()作为法线,然后为该点调用v3f()。
gl.vnarray()
与nvarray()类似,但这些对具有第一点和第二点。
gl.nurbssurface(s_k, t_k, ctl, s_ord, t_ord, type)
定义一个nurbs表面。 ctl [] []的尺寸计算如下:[len(s_k) - s_ord],[len(t_k) - t_ord]。
gl.nurbscurve(knots, ctlpoints, order, type)
定义一个nurbs曲线。ctlpoints的长度是len(knots) - order。
gl.pwlcurve(points, type)
定义分段线性曲线。积分是一个积分列表。类型 必须是N_ST。
gl.pick(n)gl.select(n)
这些函数的唯一参数指定了所需的选择或选择缓冲区的大小。
gl.endpick()gl.endselect()
这些函数没有参数。它们返回代表pick / select缓冲区已用部分的整数列表。没有提供检测缓冲区溢出的方法。
以下是Python中一个很小但完整的示例GL程序:
import gl, GL, time def main(): gl.foreground() gl.prefposition(500, 900, 500, 900) w = gl.winopen('CrissCross') gl.ortho2(0.0, 400.0, 0.0, 400.0) gl.color(GL.WHITE) gl.clear() gl.color(GL.RED) gl.bgnline() gl.v2f(0.0, 0.0) gl.v2f(400.0, 400.0) gl.endline() gl.bgnline() gl.v2f(400.0, 0.0) gl.v2f(0.0, 400.0) gl.endline() time.sleep(5) main()
扩展内容
PyOpenGL: The Python OpenGL Binding
OpenGL的接口也可用; 请在http://pyopengl.sourceforge.net/上在线查看有关PyOpenGL项目的信息。如果不需要在1996年之前支持SGI硬件,这可能是更好的选择。
自2.6版弃用:DEVICE模块已在Python 3中删除。
这些模块定义了C程序员在头文件中找到的Silicon Graphics Graphics Library使用的常量<gl/device.h>。详细阅读模块源文件。
自2.6版以来已弃用:该GL模块已在Python 3中删除。
该模块包含Silicon Graphics Graphics Library从C头文件中使用的常量<gl/gl.h>。详细阅读模块源文件。
Python 中文开发手册