gl (SGI IRIX) – Python 中文开发手册

[
  •   Python 中文开发手册

    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 中文开发手册
    ]
    转载请保留页面地址:https://www.breakyizhan.com/python/34997.html

    posted on 2020-07-12 09:58  MrAit  阅读(495)  评论(0编辑  收藏  举报

    导航