1. Prefacio
El dibujo de gráficos Delphi se puede completar entre glBegin () y glEnd (). El código del marco de dibujo puede usar el código de inicialización del dibujo OpenGL2d en Delphi. Para obtener contenido específico, consulte este sitio //www.VeVB.COm/article. /52141.htm. La parte modificada es el contenido de la función Dibujar.
2. Dibujar puntos
Utilice la función glPointSize para especificar el diámetro de los puntos rasterizados. El valor predeterminado es 1.0, que solo funciona bajo GL_POINTS. Estudiaremos el suavizado y otras funciones más adelante. Utilice glBegin (GL_POINTS) para indicarle a OpenGL que dibuje puntos. El parámetro GL_POINTS representa puntos, y hay otros parámetros, como dibujar líneas GL_LINES, etc. Para obtener más información, consulte el código fuente de la unidad OpenGL. Las funciones glBegin() y glEnd() se describen a continuación:
Prototipo de función:
void glBegin (modo GLenum)
glEnd vacío (vacío)
Descripción del parámetro:
modo: el tipo de primitiva creada. Pueden ser los siguientes valores
GL_POINTS: procesa cada vértice como un punto. El vértice n define el punto n y se dibuja un total de N puntos.
GL_LINES: trata cada vértice como un segmento de línea independiente. Se definen un total de n segmentos de línea entre los vértices 2n-1 y 2n, y se dibujan un total de N/2 segmentos de línea.
GL_LINE_STRIP: dibuja un conjunto de segmentos de línea conectados en secuencia desde el primer vértice hasta el último vértice. Los vértices n-ésimo y n + 1 definen el segmento de línea n.
GL_LINE_LOOP: dibuja un conjunto de segmentos de línea conectados en secuencia desde el primer vértice hasta el último vértice, y luego el último vértice se conecta al primer vértice. Los vértices enésimo y n + 1 definen el segmento de línea n, y un total de n líneas. Se dibujan segmentos.
GL_TRIANGLES: Trate cada vértice como un triángulo independiente. Los vértices 3n-2, 3n-1 y 3n definen el enésimo triángulo. Se dibujan un total de N/3 triángulos.
GL_TRIANGLE_STRIP: dibuja un conjunto de triángulos conectados. Para un número impar n, los vértices n, n+1 y n+2 definen el n-ésimo triángulo; para un número par n, los vértices n+1, n y n+2 definen el. n-ésimo triángulo. Se dibujan un total de N-2 triángulos.
GL_TRIANGLE_FAN: dibuja un conjunto de triángulos conectados. El triángulo está determinado por el primer vértice y los vértices dados a continuación. Los vértices 1, n+1 y n+2 definen el n-ésimo triángulo.
GL_QUADS: Dibuja un conjunto separado de cuadriláteros que consta de cuatro vértices. Los vértices 4n-3, 4n-2, 4n-1 y 4n definen el enésimo cuadrilátero. Dibuja un total de N/4 cuadriláteros
GL_QUAD_STRIP: Dibuja un conjunto de cuadriláteros conectados. Cada cuadrilátero está definido por un par de vértices seguidos de un par de vértices determinado. Los vértices 2n-1, 2n, 2n+2 y 2n+1 definen el n-ésimo cuadrilátero, y se dibujan un total de N/2-1 cuadriláteros.
GL_POLYGON: Dibuja un polígono convexo. Los vértices 1 an definen este polígono.
Descripción de la función:
Las funciones glBegin y glEnd definen la definición de punto fijo de uno o más grupos de primitivas.
El código fuente para implementar puntos de dibujo es el siguiente:
procedimiento TForm1.Draw;begin // Borrar el búfer glClear(GL_COLOR_BUFFER_BIT o GL_DEPTH_BUFFER_BIT); // Establecer el tamaño de los puntos, no puede estar entre glBegin y glEnd glPointSize(10); glBegin(GL_POINTS); punto Color glColor3f(1, 0, 0); Dibujar puntos glVertex2f(50, 50); glColor3f(0, 1, 0); glVertex2f(100, 50); glColor3f(0, 0, 1); Intercambie el contenido del búfer doble, que copiará los gráficos recién dibujados en la pantalla. fin;
glColor3f() se usa para dibujar el color del punto, glVertex2f se usa para dibujar la posición del punto.
Haga clic aquí para descargar el código completo