prefacio
¡Se acerca el Festival del Medio Otoño y todos quieren sorprender a sus familias! Hoy te enseñaré a dibujar un cielo estrellado con C++ y Easyx.
(mapa de efectos :)
1. Prepara Easyx
Primero tenemos que ir a la web oficial de Easyx para descargar el instalador,
Una vez completada la descarga, abra el programa y haga clic en "Siguiente";
Luego seleccione su editor y haga clic en "Instalar".
2. Introducción a la función
Aquí presento brevemente algunas funciones que usaré hoy:
1, círculo sólido
Esta función se utiliza para dibujar círculos rellenos sin bordes.
Prototipo de función:
void solidcircle(
int x,
int y,
int radius
);
Explicación de parámetros:
x: la coordenada x del centro del círculo
y: coordenada y del centro del círculo
radio: el radio del círculo
2, establecer color de relleno
Esta función se utiliza para establecer el color de relleno del dispositivo actual.
Prototipo de función:
void setfillcolor(COLORREF color);
Explicación de parámetros:
color: color de relleno
3, obtener color de fondo
Esta función se utiliza para obtener el color de fondo actual del dispositivo.
COLORREF getbkcolor();
4initgrafo
Esta función se utiliza para inicializar la ventana de dibujo.
Prototipo de función:
HWND initgraph(
int width,
int height,
int flag = NULL
);
Explicación de parámetros:
ancho: el ancho de la ventana de dibujo
altura : la altura de la ventana de dibujo
bandera: el estilo de la ventana de dibujo, el valor predeterminado es NULL. Pueden ser los siguientes valores:
valor | sentido |
---|---|
EW_DBLCLKS | Admite el evento de doble clic del mouse en la ventana de dibujo |
EW_NOCERRAR | Deshabilitar el botón de cerrar de la ventana de trazado |
EW_NOMINIMIZAR | Deshabilitar el botón de minimizar de la ventana de trazado |
EW_SHOWCONSOLA | mostrar la ventana de la consola |
5, gráfico cerrado
Esta función se utiliza para cerrar la ventana de dibujo.
void closegraph();
6, poner píxeles
Esta función se utiliza para dibujar puntos.
void putpixel(
int x,
int y,
COLORREF color
);
parámetro
x: la coordenada x del punto
y: la coordenada y del punto
color: el color del punto
3. Principio de realización
El principio de implementación de este proyecto no es difícil. La luna es un círculo relleno sin bordes; la estrella grande es dibujar un círculo primero y luego dibujar algunos círculos alrededor con el color de fondo; la estrella pequeña es dibujar puntos en posiciones aleatorias.
4. Tutoría
1. Abra el archivo de encabezado:
#include <graphics.h>
2. Inicialice la ventana en la función principal (lo mismo a continuación):
initgraph(640, 480);
3. Establezca el color de relleno:
setfillcolor(YELLOW);
4. Dibuja un círculo relleno sin borde:
solidcircle(450, 80, 50);
Dado que no solo estamos dibujando una gran estrella, es mejor hacerlo con una función.
5. Haz una función para dibujar una gran estrella fuera de la función principal:
void star(int x, int y) {
setfillcolor(YELLOW);
solidcircle(x, y, 20);
setfillcolor(getbkcolor());
solidcircle(x - 20, y - 20, 20);
solidcircle(x + 20, y - 20, 20);
solidcircle(x - 20, y + 20, 20);
solidcircle(x + 20, y + 20, 20);
return;
}
6. Luego escribe en la función principal:
star(50, 50);
star(570, 400);
star(300, 60);
star(250, 300);
star(50, 400);
Y debido a que las posiciones de nuestras pequeñas estrellas son aleatorias, para generar números aleatorios, necesitamos:
7. Importe el archivo de encabezado:
#include <time.h>
8. Escribe una oración al comienzo de la función principal:
srand((unsigned int)time(NULL));
9. Agregue un código para dibujar (cien) estrellas pequeñas después del código para dibujar estrellas grandes:
for (int i = 0; i < 100; i++) {
putpixel(rand() % 640, rand() % 480, YELLOW);
}
Para tener el efecto de presionar cualquier tecla para salir, necesitamos:
10. Importe el archivo de encabezado:
#include <conio.h>
11. Escribe una oración después del código para dibujar la pequeña estrella:
_getch();
12. Finalmente, cierre la ventana y salga del programa:
closegraph();
return 0;
5. Código completo
#include <graphics.h>
#include <time.h>
#include <conio.h>
void star(int x, int y) {
setfillcolor(YELLOW);
solidcircle(x, y, 20);
setfillcolor(getbkcolor());
solidcircle(x - 20, y - 20, 20);
solidcircle(x + 20, y - 20, 20);
solidcircle(x - 20, y + 20, 20);
solidcircle(x + 20, y + 20, 20);
return;
}
int main() {
srand((unsigned int)time(NULL));
initgraph(640, 480);
setfillcolor(YELLOW);
solidcircle(450, 80, 50);
star(50, 50);
star(570, 400);
star(300, 60);
star(250, 300);
star(50, 400);
for (int i = 0; i < 100; i++) {
putpixel(rand() % 640, rand() % 480, YELLOW);
}
_getch();
closegraph();
return 0;
}
Muy bien, eso es todo por hoy. El artículo tiene referencias. ¡Apoya si te gusta!