20.8 gl -- interfaccia verso la libreria grafica

Disponibilità: IRIX.

Questo modulo fornisce l'accesso alla libreria grafica Silicon Graphics. Il modulo è disponibile solo su macchine Silicon Graphics.

In alcuni casi, chiamare in modo improprio le funzioni della libreria GL manda in crash l'interprete Python. In particolare, l'uso di molte chiamate a funzioni GL non è sicuro prima di aprire la prima finestra.

Questo modulo è troppo grande per essere interamente documentato in questa sezione, ma quanto segue dovrebbe essere di aiuto per cominciare ad usarlo. Le convenzioni sui parametri delle funzioni C vengono trasformate in Python come segue:

Le seguenti funzioni non sono standard o hanno speciali convenzioni per i loro argomenti:

varray( argument)
Equivalente ad una serie di chiamate alla funzione v3d(), ma più veloce. L'argomento è una lista (o una tupla) di punti. Ciascun punto deve essere una tupla di coordinate (x, y, z) oppure (x, y). I punti possono essere bidimensionali o tridimensionali, ma tutti delle stesse dimensioni. I valori in virgola mobile e gli interi possono essere usati insieme. I punti vengono sempre convertiti in punti tridimensionali a doppia precisione assumendo, quando serva, che z = 0.0 (come indicato dalla pagina di manuale ); quindi la funzione v3d() viene chiamata per ciascun punto.

nvarray( )
Equivalente ad una serie di chiamate alle funzioni n3f e v3f, ma più veloce. L'argomento è una array (lista o tupla) di coppie di vettori normali e punti. Ciascuna coppia è una tupla composta di un punto e un vettore normale per quel punto. Ciascun punto o vettore va espresso come tupla di coordinate (x, y, z). È obbligatorio dare tre coordinate. Valori interi ed in virgola mobile possono essere mescolati. Per ciascuna coppia, viene chiamata la funzione n3f() per il vettore normale e quindi v3f() per il punto.

vnarray( )
Simile a nvarray(), ma ogni coppia deve avere come primo elemento il punto e come secondo il vettore normale (NdT: al contrario della funzione precedente).

nurbssurface( s_k, t_k, ctl, s_ord, t_ord, type)
Definisce una superficie "nurbs". Le dimensioni di ctl[][] vengono calcolate come segue: [len(s_k) - s_ord], [len(t_k) - t_ord].

nurbscurve( knots, ctlpoints, order, type)
Definisce una curva "nurbs". La lunghezza di ctlpoints è uguale a len(knots) - order.

pwlcurve( points, type)
Definisce una curva lineare a tratti. Il parametro points è una lista di punti, il parametro type deve avere il valore N_ST.

pick( n)
select( n)
Il solo argomento di queste funzioni specifica la dimensione voluta per il buffer da usare.

endpick( )
endselect( )
Queste funzioni non hanno argomenti. Restituiscono una lista di interi rappresentanti la parte usata del buffer di pickle/select. Non viene fornito alcun metodo per individuare il sovraccarico del buffer.

Quello che segue è un piccolo ma completo esempio di programma Python che usa la Graphic Library:

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

Vedete anche:

PyOpenGL: L'interfaccia Python verso la libreria OpenGL
È anche disponibile un'interfaccia verso la libreria OpenGL; vedere a questo proposito le informazioni sul progetto PyOpenGL presso il sito http://pyopengl.sourceforge.net/. Questa opzione può essere da preferire, se non viene richiesto il supporto per hardware SGI precedente al 1996.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.