Freigeben über


gluPickMatrix-Funktion

Die gluPickMatrix-Funktion definiert einen Kommissionierbereich.

Syntax

void WINAPI gluPickMatrix(
   GLdouble x,
   GLdouble y,
   GLdouble height,
   GLdouble width,
   GLint    viewport[4]
);

Parameter

x

Die x-Fensterkoordinate eines Auswahlbereichs.

y

Die y-Fensterkoordinate eines Auswahlbereichs.

height

Die Höhe des Auswahlbereichs in Fensterkoordinaten.

width

Die Breite des Auswahlbereichs in Fensterkoordinaten.

Ansichtsfenster

Der aktuelle Viewport (aus einem glGetIntegerv-Aufruf ).

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Die gluPickMatrix-Funktion erstellt eine Projektionsmatrix, mit der Sie das Zeichnen auf einen kleinen Bereich des Viewports beschränken können.

  1. Verwenden Sie gluPickMatrix , um das Zeichnen auf einen kleinen Bereich um den Cursor zu beschränken.

  2. Wechseln Sie in den Auswahlmodus (mit glRenderMode), und rendern Sie die Szene dann erneut.

    Alle Grundtypen, die in der Nähe des Cursors gezeichnet worden wären, werden identifiziert und im Auswahlpuffer gespeichert.

Die von gluPickMatrix erstellte Matrix wird mit der aktuellen Matrix multipliziert, als würde glMultMatrix mit der generierten Matrix aufgerufen.

  1. Rufen Sie glLoadIdentity auf, um eine Identitätsmatrix in den Perspektivmatrixstapel zu laden.
  2. Rufen Sie gluPickMatrix auf.
  3. Rufen Sie eine Funktion (z. B. gluPerspective) auf, um die Perspektivmatrix mit der Auswahlmatrix zu multiplizieren.

Wenn Sie gluPickMatrix zum Auswählen von Non-Uniform Rational B-Spline (NURBS) verwenden, müssen Sie die NURBS-Eigenschaft GLU_AUTO_LOAD_MATRIX deaktivieren. Wenn GLU_AUTO_LOAD_MATRIX nicht deaktiviert ist, wird jede NURBS-Oberfläche, die gerendert wird, mit der Auswahlmatrix anders unterteilt als bei der Unterteilung ohne die Auswahlmatrix.

Beispiele

Beim Rendern einer Szene wie folgt:

glMatrixMode(GL_PROJECTION);  
glLoadIdentity( );  
gluPerspective(. . .);  
glMatrixMode(GL_MODELVIEW);  
/* Draw the scene */

Der folgende Code wählt einen Teil des Viewports aus:

glMatrixMode(GL_PROJECTION);  
glLoadIdentity( );  
gluPickMatrix(x, y, width, height, viewport);  
gluPerspective(. . .);  
glMatrixMode(GL_MODELVIEW);  
/* Draw the scene */

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Glu.h
Bibliothek
Glu32.lib
DLL
Glu32.dll

Weitere Informationen

glGetIntegerv

glLoadIdentity

glMultMatrix

glRenderMode

gluPerspective