Spec-Zone.ru › Python 2.7

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). Точки могут быть 2- или 3-мерными, но все они должны иметь одинаковую размерность. Вещественные и целые значения могут быть смешаны, однако. Точки всегда преобразуются в точки с двойной точностью 3D, предполагая z = 0.0 при необходимости (как указано в справке), и для каждой точки вызывается v3d().

gl.nvarray()

Эквивалентно, но быстрее, чем ряд вызовов n3f и v3f. Аргументом является массив (список или кортеж) пар нормалей и точек. Каждая пара — кортеж точки и нормали для этой точки. Каждая точка или нормаль должны быть кортежем координат (x, y, z). Должны быть указаны три координаты. Вещественные и целые значения могут быть смешаны. Для каждой пары вызывается 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)

Определяет кусок-линейную кривую. points — список точек. type должен быть N_ST.

gl.pick(n)
gl.select(n)

Единственный аргумент этих функций указывает желаемый размер буфера pick или select.

gl.endpick()
gl.endselect()

Эти функции не имеют аргументов. Они возвращают список целых чисел, представляющих используемую часть буфера pick/select. Метод для обнаружения переполнения буфера не предусмотрен.

Вот небольшой, но полный пример программы GL на Python:

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: Связь с OpenGL на Python

Также доступен интерфейс к OpenGL; см. информацию о проекте PyOpenGL онлайн по адресу http://pyopengl.sourceforge.net/. Это может быть лучшим вариантом, если не требуется поддержка SGI-оборудования до примерно 1996 года.

DEVICE — Константы, используемые с модулем gl

Устарело начиная с версии 2.6: Модуль DEVICE был удалён в Python 3.

Этот модуль определяет константы, используемые библиотекой графики Silicon Graphics, которые программисты C находят в заголовочном файле <gl/device.h>. Подробную информацию см. в исходном файле модуля.

GL — Константы, используемые с модулем gl

Устарело начиная с версии 2.6: Модуль GL был удалён в Python 3.

Этот модуль содержит константы, используемые библиотекой графики Silicon Graphics из заголовочного файла C <gl/gl.h>. Подробную информацию см. в исходном файле модуля.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/gl.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API