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.