1. Vorwort
Das Zeichnen von Delphi-Grafiken kann zwischen glBegin() und glEnd() abgeschlossen werden. Der Zeichnungsrahmencode kann den Initialisierungscode des OpenGL2d-Zeichnens unter Delphi verwenden. Weitere Informationen finden Sie auf dieser Website //www.VeVB.COm/article /52141.htm . Der geänderte Teil ist der Inhalt der Draw-Funktion.
2. Punkte zeichnen
Verwenden Sie die glPointSize-Funktion, um den Durchmesser der gerasterten Punkte anzugeben. Der Standardwert ist 1.0, was nur unter GL_POINTS funktioniert. Wir werden später Anti-Aliasing und andere Funktionen untersuchen. Verwenden Sie glBegin(GL_POINTS), um OpenGL anzuweisen, Punkte zu zeichnen. Der Parameter GL_POINTS stellt Punkte dar, und es gibt andere Parameter, z. B. das Zeichnen von Linien GL_LINES usw. Weitere Informationen finden Sie im Quellcode der OpenGL-Einheit. Die Funktionen glBegin() und glEnd() werden wie folgt beschrieben:
Funktionsprototyp:
void glBegin(GLenum-Modus)
void glEnd(void)
Parameterbeschreibung:
Modus: der Typ des zu erstellenden Grundelements. Können die folgenden Werte sein
GL_POINTS: Verarbeiten Sie jeden Scheitelpunkt als Punkt. Scheitelpunkt n definiert Punkt n und es werden insgesamt N Punkte gezeichnet.
GL_LINES: Behandeln Sie jeden Scheitelpunkt als unabhängiges Liniensegment. Zwischen den Scheitelpunkten 2n-1 und 2n werden insgesamt n Liniensegmente definiert und insgesamt N/2 Liniensegmente gezeichnet.
GL_LINE_STRIP: Zeichnen Sie eine Reihe von Liniensegmenten, die nacheinander vom ersten Scheitelpunkt bis zum letzten Scheitelpunkt verbunden sind. Die n und n+1 Scheitelpunkte definieren das Liniensegment n. Es werden insgesamt n-1 Liniensegmente gezeichnet.
GL_LINE_LOOP: Zeichnen Sie eine Reihe von Liniensegmenten, die nacheinander vom ersten Scheitelpunkt bis zum letzten Scheitelpunkt verbunden sind, und verbinden Sie dann den letzten Scheitelpunkt mit dem ersten Scheitelpunkt. Der n-te Scheitelpunkt und n+1 Scheitelpunkte definieren das Liniensegment n und insgesamt n Linien Segmente werden gezeichnet.
GL_TRIANGLES: Behandeln Sie jeden Scheitelpunkt als unabhängiges Dreieck. Die Scheitelpunkte 3n-2, 3n-1 und 3n definieren das n-te Dreieck und es werden insgesamt N/3 Dreiecke gezeichnet.
GL_TRIANGLE_STRIP: Für eine ungerade Zahl n definieren die Eckpunkte n, n+1 und n+2 das n-te Dreieck; für eine gerade Zahl n definieren die Eckpunkte n+1, n und n+2 Es werden insgesamt N-2 Dreiecke gezeichnet.
GL_TRIANGLE_FAN: Zeichnen Sie eine Reihe verbundener Dreiecke. Das Dreieck wird durch die folgenden Eckpunkte 1, n+1 und n+2 definiert. Es werden insgesamt N-2 Dreiecke gezeichnet.
GL_QUADS: Zeichnet einen separaten Satz von Vierecken, bestehend aus vier Eckpunkten. Die Eckpunkte 4n-3, 4n-2, 4n-1 und 4n definieren das n-te Viereck. Zeichne insgesamt N/4 Vierecke
GL_QUAD_STRIP: Zeichnet eine Reihe verbundener Vierecke. Jedes Viereck wird durch ein Eckpunktpaar definiert, gefolgt von einem bestimmten Eckpunktpaar. Die Eckpunkte 2n-1, 2n, 2n+2 und 2n+1 definieren das n-te Viereck, und insgesamt werden N/2-1 Vierecke gezeichnet.
GL_POLYGON: Zeichnen Sie ein konvexes Polygon. Die Eckpunkte 1 bis n definieren dieses Polygon.
Funktionsbeschreibung:
Die Funktionen glBegin und glEnd definieren die Festkommadefinition einer oder mehrerer Gruppen von Grundelementen.
Der Quellcode zum Implementieren von Zeichnungspunkten lautet wie folgt:
procedure TForm1.Draw;begin // Puffer löschen glClear(GL_COLOR_BUFFER_BIT oder GL_DEPTH_BUFFER_BIT); // Punktgröße festlegen, sie darf nicht zwischen glBegin und glEnd sein; glBegin(GL_POINTS); // Punkte zeichnen // Festlegen der Punktfarbe glColor3f(1, 0, 0); glVertex2f(50, 50); glVertex2f(150, 50); glVertex2f(150, 50); Tauschen Sie den Inhalt des Doppelpuffers aus, der die neu gezeichneten Grafiken auf den Bildschirm kopiert. Ende;
glColor3f() wird verwendet, um die Farbe des Punkts zu zeichnen, glVertex2f zeichnet die Position des Punkts.
Klicken Sie hier, um den vollständigen Code herunterzuladen