首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

gl

自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()

扩展内容

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>。详细阅读模块源文件。

扫码关注腾讯云开发者

领取腾讯云代金券