Experimento 1 Introducción a la programación de gráficos OpenGL (visualstudio2010)

inserte la descripción de la imagen aquí

1. Propósito del experimento

1. Comprender y dominar la instalación de OpenGL.
2. Domine una estructura de programa C++ basada en OpenGL simple.
3. Domina el marco del programa win32.
4. Domina el dibujo de algunos gráficos básicos en OpenGL.

2. Ambiente experimental

Requisitos de hardware:
PC, configuración principal, preferiblemente tarjeta gráfica independiente, memoria 512M o más.
Entorno de software:
Sistema operativo: Windows 7/Windows8
Herramientas de desarrollo de lenguaje: Microsoft Visual Studio 2010, Visual C++.
Marco del programa:
aplicación win32

3. Contenido y requisitos experimentales

Requisitos: copie las capturas de pantalla de efectos generadas por todos los pasos del experimento en el documento de informe del experimento para referencia futura y adjunte el código correspondiente. Método de denominación de documentos WORD: nombre del número de estudiante-número de serie del experimento-nombre del experimento.
Contenido: (Nota: para imprimir, establezca el fondo negro en color transparente)
1. Prepare el archivo de la biblioteca OpenGL. Como se muestra en la siguiente figura:
inserte la descripción de la imagen aquí
(1) Glut32.dll ruta %raíz del sistema%\ SysWOW64. Como se muestra abajo:
inserte la descripción de la imagen aquí

(2) Glut32.lib en RUTA\lib。
inserte la descripción de la imagen aquí

(3) Glut.h en PATH\Include. Como se muestra abajo:
inserte la descripción de la imagen aquí

system root es la ruta de instalación de windows7 o windows8.
ruta es la ruta de instalación de Visual Studio 2010.
2. Cree un archivo de proyecto y ejecute el programa de ejemplo my_first_program.cpp para ver el resultado.
1) Inicie Microsoft Visual Studio 2010, haga clic en "Archivo" -> "Nuevo" -> "Proyecto" en la barra de menú, como se muestra en la siguiente figura: 2) En el cuadro de diálogo "Nuevo proyecto", seleccione el proyecto Win32 de
inserte la descripción de la imagen aquí
Visual C++, y luego ingrese el nombre del proyecto (por ejemplo, lab1-basis), seleccione la ubicación para guardar el proyecto (), como se muestra en la figura a continuación, y haga clic en el botón "Aceptar".
inserte la descripción de la imagen aquí
3) Reemplace el archivo fuente de C++ (lab1-basis.cpp) en el "archivo fuente" del archivo del proyecto con el siguiente programa de muestra: el resultado de
inserte la descripción de la imagen aquí
ejecutar el programa de muestra anterior es crear una ventana llamada "hola", como se muestra en la figura a continuación:
inserte la descripción de la imagen aquí
3. Lea atentamente el programa de ejemplo anterior, comprenda la función de cada función y modifique el título de la ventana para que muestre "mi primer programa OpenGL". El código modificado y sus resultados de ejecución son los siguientes: (1) Modificar el código
:

char *argv[]={
    
    "我的第一个OpenGL程序"," "};  
glutCreateWindow("我的第一个OpenGL程序"); 

(2) Resultados de la ejecución:
inserte la descripción de la imagen aquí
4. Configuración de la ventana
De forma predeterminada, la posición de la ventana aparece en la esquina superior izquierda de la pantalla, con un tamaño de 300 x 300.
Requisitos:
1) Modifique la posición de la ventana para que esté en el centro de la pantalla
Modifique el código de la siguiente manera:

int cx = glutGet(GLUT_SCREEN_WIDTH);  
int cy = glutGet(GLUT_SCREEN_HEIGHT);  
glutInitWindowPosition((cx-500)/2,(cy-500)/2); 

Los resultados de la ejecución son los siguientes:
inserte la descripción de la imagen aquí
2) Cambie el tamaño de la ventana al tamaño completo de la pantalla
La siguiente figura muestra la modificación del código y los resultados de la ejecución:
inserte la descripción de la imagen aquí
3) Modifique el tamaño de la ventana a otros tamaños
Modifique el código:

glutInitWindowSize(350,350);

Ejecución de resultados:
inserte la descripción de la imagen aquí
5. Configuración del color de fondo
De forma predeterminada, el color de fondo es negro
1) Configure el fondo de la ventana en blanco, como se muestra en la siguiente figura:
Modificación del código:

glClearColor(1.0f,1.0f,1.0f,1.0f);

Ejecutando resultados:
inserte la descripción de la imagen aquí
1) Establezca el fondo de la ventana en otro color, como se muestra en la siguiente figura:
Modificación de código:

glClearColor(7.0,-7.0,5.0,1.0f);

Resultado de ejecución: (fondo morado)
inserte la descripción de la imagen aquí
6. Dibujo gráfico básico
Dibujo rectangular:
1) Agregue "glRectf(0,0,1,1);" después de la declaración "glClear(GL_COLOR_BUFFER_BIT);" de la función de dibujo de pantalla y ejecute la programa para ver el efecto, la modificación del código y los resultados de la ejecución son los que se muestran en la siguiente figura: 2) Modifique las coordenadas diagonales del rectángulo
inserte la descripción de la imagen aquí
para ver qué cambios y problemas hay. :

glRectf(-0.8f,-0.8f,0.5f,0.5f);

Resultados de la ejecución:
inserte la descripción de la imagen aquí
3) De acuerdo con la función dada, intente dibujar gráficos básicos como una línea recta y un triángulo
(1) Línea recta:
modificación del código:

void display(void)
{
    
    

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);    //设置清屏颜色 
    glClear(GL_COLOR_BUFFER_BIT);           //刷新颜色缓存区
    glBegin(GL_LINES);  
    glVertex2f(0,0);  
    glVertex2f(0.8,0.8);  
    glEnd();  
    glFlush();                                //用于刷新命令队列和缓存区,使所有尚未被执行的OpenGL命令得到执行

}

Resultado de ejecución:
inserte la descripción de la imagen aquí
(3) Triángulo:
modificación de código:

void display(void)
{
    
    

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);    //设置清屏颜色 
    glClear(GL_COLOR_BUFFER_BIT);           //刷新颜色缓存区
    glBegin(GL_TRIANGLES);  
    glVertex2f(0,0);  
    glVertex2f(0.5,0.5);  
    glVertex2f(0.0,0.8);  
    glEnd();  
    glFlush();                           //用于刷新命令队列和缓存区,使所有尚未被执行的OpenGL命令得到执行
}

Ejecución de resultados:
inserte la descripción de la imagen aquí
7. Configuración del color del dibujo
1) Cambie los gráficos dibujados a rojo
Modificación del código:

glColor3f(1.0f, 0.0f, 0.0f);                 //设置为红色
glRectf(-0.1f, -0.1f, -0.2f, -0.2f);        //矩形

inserte la descripción de la imagen aquí
2) Establecer las primitivas básicas dibujadas en diferentes colores
Modificación del código:

glColor3f(0.5f, 0.6f, 0.2f);                 //设置为草绿色
    glBegin(GL_TRIANGLES);
    glVertex2f(0.0f,0.0f);
    glVertex2f(0.2f, 0.2f);
    glVertex2f(0.0f, 0.2f);
    glEnd();

resultado de la operación:

inserte la descripción de la imagen aquí

8. Dibuje figuras geométricas
1) Cambie la barra de título, agregue el número y el nombre del estudiante.
2) Dibujar más de dos formas geométricas básicas.
3) Establecer tres colores.
Modificación de código:

#include <windows.h>
#include <gl/glut.h>
void display(void)
{
    
    

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);    //设置清屏颜色 
    glClear(GL_COLOR_BUFFER_BIT);           //刷新颜色缓存区
    glColor3f(1.0f, 0.0f, 0.0f);                 //设置为红色
    glRectf(-0.1f, -0.1f, -0.2f, -0.2f);        //矩形
    //绘制直线
    glColor3f(0.0f, 1.0f, 0.0f);                 //设置为绿色
    glBegin(GL_LINES);
    glVertex2f(0.0f,0.0f);
    glVertex2f(0.3f, -0.2f);
    glEnd();
    //画三角形,x1、y1、x2、y2、x3、y3为三角形顶点坐标
    glColor3f(0.5f, 0.6f, 0.2f);                 //设置为草绿色
    glBegin(GL_TRIANGLES);
    glVertex2f(0.0f,0.0f);
    glVertex2f(0.2f, 0.2f);
    glVertex2f(0.0f, 0.2f);
    glEnd();
    glFlush();                              //用于刷新命令队列和缓存区,使所有尚未被执行的OpenGL命令得到执行
}
int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR  lpCmdLine,int   nCmdShow)
{
    
    
	UNREFERENCED_PARAMETER(hPrevInstance);
	UNREFERENCED_PARAMETER(lpCmdLine);
	char *argv[] = {
    
     "hello"," " };
	int argc = 2;
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(350,350);
	glutInitWindowPosition((glutGet(GLUT_SCREEN_WIDTH)-640)/2,
                       (glutGet(GLUT_SCREEN_HEIGHT)-480)/2);
	glutCreateWindow("学号 姓名");
	glutDisplayFunc(display);
	glutMainLoop();
	return 0;
}

resultado de la operación:
inserte la descripción de la imagen aquí

4. Preguntas para pensar

1. ¿Dónde está la ventana predeterminada en la pantalla? ¿Qué debo hacer si quiero cambiar la posición de la ventana en la pantalla? ¿Cómo cambiar el tamaño de la ventana?

Respuesta: La ventana predeterminada está en la esquina superior izquierda de la pantalla. Para cambiar la posición de la ventana, use la función glutInitWindowPosition, pasando las coordenadas de la esquina superior izquierda de la posición de la ventana de destino; para ajustar el tamaño de la ventana, use la función glutInitWindowSize, pasando la longitud y el ancho de la ventana.

2. ¿Dónde está el origen de coordenadas de dibujo predeterminado en la ventana de este experimento?

R: En la esquina superior derecha de la ventana.

3. ¿Cómo modificar el color de fondo y el color del dibujo? ¿Cuáles son los requisitos para el orden y la posición de los colores de dibujo?

Respuesta: Use la función glClearColor para modificar el color de fondo.Esta función se coloca en display() y se coloca delante de la instrucción glClear(). La modificación del color del dibujo usa la función glColor3f antes de glBegin().

4. Para "#include <gl/glut.h>", ¿en qué carpeta se debe colocar el archivo de encabezado?

Esta respuesta: debe colocarse en D:\vs2010\VC\include\gl\ (escriba de acuerdo con su propia ubicación de almacenamiento)

Supongo que te gusta

Origin blog.csdn.net/weixin_52030647/article/details/130674002
Recomendado
Clasificación