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