Документация Python неофициальный перевод

gl.md

127 строк · 8.9 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/gl.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 39.8. [`gl`](https://python-all.ru/2.7/library/gl.html#module-gl) – *Graphics Library* интерфейс89Устарело с версии 2.6: Модуль [`gl`](https://python-all.ru/2.7/library/gl.html#module-gl) удалён в Python 3.1011Этот модуль предоставляет доступ к *Graphics Library* от Silicon Graphics. Он доступен только на машинах Silicon Graphics.1213> **Предупреждение**14>15> Некоторые некорректные вызовы библиотеки GL приводят к дампу ядра интерпретатора Python. В частности, использование большинства вызовов GL небезопасно до открытия первого окна.1617Модуль слишком велик, чтобы документировать его здесь полностью, но следующее должно помочь вам начать работу. Соглашения о параметрах для функций C преобразуются в Python следующим образом:1819- Все значения (short, long, unsigned) int представляются целыми числами Python.20- Все значения float и double представляются числами с плавающей точкой Python. В большинстве случаев также допускаются целые числа Python.21- Все массивы представляются одномерными списками Python. В большинстве случаев также допускаются кортежи.22- Все строковые и символьные аргументы представляются строками Python, например, `winopen('Hi There!')` и `rotate(900, 'z')`.23- Все целые (short, long, unsigned) аргументы или возвращаемые значения, которые используются только для указания длины массива-аргумента, опускаются. Например, вызов C2425  ```python26  lmdef(deftype, index, np, props)27  ```2829  преобразуется в Python как3031  ```python32  lmdef(deftype, index, props)33  ```34- Выходные аргументы опускаются из списка аргументов; вместо этого они передаются как возвращаемые значения функции. Если необходимо вернуть более одного значения, возвращаемое значение является кортежем. Если функция C имеет как обычное возвращаемое значение (которое не опускается по предыдущему правилу), так и выходной аргумент, возвращаемое значение идёт первым в кортеже. Примеры: вызов C3536  ```python37  getmcolor(i, &red, &green, &blue)38  ```3940  преобразуется в Python как4142  ```python43  red, green, blue = getmcolor(i)44  ```4546Следующие функции являются нестандартными или имеют особые соглашения об аргументах:4748#### `gl.varray(argument)`4950Эквивалентно, но быстрее, чем несколько вызовов `v3d()`. *Аргумент* – это список (или кортеж) точек. Каждая точка должна быть кортежем координат `(x, y, z)` или `(x, y)`. Точки могут быть двумерными или трёхмерными, но все должны иметь одинаковую размерность. Значения float и int можно смешивать. Точки всегда преобразуются в трёхмерные точки двойной точности с предположением `z = 0.0` при необходимости (как указано в man-странице), и для каждой точки вызывается `v3d()`.5152#### `gl.nvarray()`5354Эквивалентно, но быстрее, чем несколько вызовов `n3f` и `v3f`. Аргументом является массив (список или кортеж) пар нормалей и точек. Каждая пара – это кортеж из точки и нормали для этой точки. Каждая точка или нормаль должна быть кортежем координат `(x, y, z)`. Должны быть заданы три координаты. Значения float и int можно смешивать. Для каждой пары сначала вызывается `n3f()` для нормали, а затем `v3f()` для точки.5556#### `gl.vnarray()`5758Аналогично `nvarray()`, но в парах сначала идёт точка, а затем нормаль.5960#### `gl.nurbssurface(s_k, t_k, ctl, s_ord, t_ord, type)`6162Определяет NURBS-поверхность. Размерности `ctl[][]` вычисляются следующим образом: `[len(s_k) - s_ord]`, `[len(t_k) - t_ord]`.6364#### `gl.nurbscurve(knots, ctlpoints, order, type)`6566Определяет NURBS-кривую. Длина ctlpoints равна `len(knots) - order`.6768#### `gl.pwlcurve(points, type)`6970Определяет кусочно-линейную кривую. *points* – это список точек. *type* должен быть `N_ST`.7172#### `gl.pick(n)`7374#### `gl.select(n)`7576Единственный аргумент этих функций задаёт желаемый размер буфера выбора (pick или select).7778#### `gl.endpick()`7980#### `gl.endselect()`8182Эти функции не имеют аргументов. Они возвращают список целых чисел, представляющих используемую часть буфера выбора. Не предусмотрено метода для обнаружения переполнения буфера.8384Вот небольшой, но полный пример программы GL на Python:8586```python87import gl, GL, time8889def main():90    gl.foreground()91    gl.prefposition(500, 900, 500, 900)92    w = gl.winopen('CrissCross')93    gl.ortho2(0.0, 400.0, 0.0, 400.0)94    gl.color(GL.WHITE)95    gl.clear()96    gl.color(GL.RED)97    gl.bgnline()98    gl.v2f(0.0, 0.0)99    gl.v2f(400.0, 400.0)100    gl.endline()101    gl.bgnline()102    gl.v2f(400.0, 0.0)103    gl.v2f(0.0, 400.0)104    gl.endline()105    time.sleep(5)106107main()108```109110> **См. также**111>112> **[PyOpenGL: привязка OpenGL для Python](https://python-all.ru/2.7/library/gl.html)**113>114> Также доступен интерфейс к OpenGL; смотрите информацию о проекте **PyOpenGL** онлайн по адресу [http://pyopengl.sourceforge.net/](https://python-all.ru/2.7/library/gl.html). Это может быть лучшим вариантом, если не требуется поддержка оборудования SGI примерно до 1996 года.115116# 39.9. [`DEVICE`](https://python-all.ru/2.7/library/gl.html#module-DEVICE) – Константы, используемые с модулем [`gl`](https://python-all.ru/2.7/library/gl.html#module-gl)117118Устарело с версии 2.6: Модуль [`DEVICE`](https://python-all.ru/2.7/library/gl.html#module-DEVICE) удалён в Python 3.119120Этот модуль определяет константы, используемые *Graphics Library* от Silicon Graphics, которые программисты на C находят в заголовочном файле `<gl/device.h>`. Подробнее читайте в исходном файле модуля.121122# 39.10. [`GL`](https://python-all.ru/2.7/library/gl.html#module-GL) – Константы, используемые с модулем [`gl`](https://python-all.ru/2.7/library/gl.html#module-gl)123124Устарело с версии 2.6: Модуль [`GL`](https://python-all.ru/2.7/library/gl.html#module-GL) удалён в Python 3.125126Этот модуль содержит константы, используемые *Graphics Library* от Silicon Graphics из заголовочного файла C `<gl/gl.h>`. Подробнее читайте в исходном файле модуля.127