Explicación del programa de fuegos artificiales, ¡por favor ayuda! Debe ser detallado. Lo mejor es tener una explicación para cada afirmación.
¡Gracias!
#define PI 3.14: Definir constante PI=3.14
======El siguiente es el archivo de encabezado importado, similar a la página de importación en Java, usando namespace= en C# =
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
====El siguiente es el método de declaración. En C++, primero debes declarar el método... No hace falta decir más~~
estrella vacía. (int x,int y);
void drawstar();
void Putstar(void);
void starflower();
=== ==El siguiente es el cuerpo principal de la función. La función principal es la entrada principal del programa de la función de inicio======
int main()
.{
int gdriver=DETECT; => Déjame presentarte... ¿Estás seguro de que el código está completo? Parece que es una constante definida, pero vi esta definición antes.
int gmode=0;
=== ======Método del sistema.
initgraph(&gdriver,&gmode,"c:\\ tc30\\bgi");/*Preste atención a la configuración de la ruta bgi*/
========Llame a métodos personalizados, las implementaciones de métodos específicos se encuentran a continuación===== =====
drawstar();
starflower();
getch();
closegraph();
return 0;
}
========La siguiente es la implementación del método personalizado========= ==============
estrella vacía(int x, int y)/*Función de dibujo de estrellas*/
{
========Definir variables, inicializar, establecer color
int i,a;
int n=5;
int x1 [5],y1[5],x2[5],y2[5];
setcolor(YELLOW);
=======Obtener las coordenadas (todas calculado mediante fórmulas matemáticas, no es necesario decir más~~)
for(i=0 ;i<5;i++)
{
x1[i ]=x+n*cos(i*72*PI/180);
y1 [i]=y+n*sin(i*72*PI/180);
x2[i]=x+n/2*cos(i
*72*PI/18PI/5);
y2[i]=y+n/2*sin(i*72*PI/18PI/5);
}
for(i=0;i<5;i++)
{
a=i+1;
if(a>4) a=0;
========Dibuja una línea recta (conexión) basada en las coordenadas obtenidas
line(x1[i] ,y1 [i],x2[i],y2[i]);/*Dibujar una línea recta entre dos puntos*/
line(x2[i],y2[i],x1[a ],y1[ a]);
}
}
void Putstar(void)/*función de estrella de dibujo*/
{
====Definir variables, inicializar
int seed=1858;
int i,dotx,doty,h,w,color,maxcolor;
w=getmaxx();/*Obtener la coordenada X máxima de la pantalla*/
h=getmaxy();/*Obtener la coordenada Y máxima de la pantalla*/
srand(seed );/*Generar números aleatorios*/
for(i=0;i<100;++i)
{ p>
===Adquisición de bucle Coordenadas aleatorias, color aleatorio
dotx=i+random(w-1);
doty=1+random(h-1) ;
color= random(h-1);
setcolor(color);
===dibujo
putpixel(dotx ,doty,color);/*especificar Dibujar un píxel en la posición*/
===Lo siguiente... Debería ser una clase personalizada para dibujar círculos... Supongo...
círculo(dotx+1,doty+1,1);
}
srand(semilla);
}
void drawstar ()
{
int a[]={70,280,230,440,140,110,180,90,500,360};
int b[]={50,27 ,88,99,100,37 ,67,98,60,78},i;
===Establece el modo de relleno y el color...
setfillstyle(1,14) ;
===Método de llamada de bucle
for(i=0;i<10;i++)
{
== La introducción es una estrella de pintura
star(a[i],b[i]);
==El color de relleno es para el que se acaba de pintar
Floodfill(a [i],b[i],YELLOW);
}
==La segunda es la segunda función para dibujar estrellas (la anterior)
Putstar();
}
void starflower() /*Función de floración de fuegos artificiales*/
{
= ==Definición, datos de inicialización
int i=0,j,n=60,n1=2;
int x=200,y=200,size=100; p>
int cover=0;
int delay1=20;
int wid,hei;
int px,py;
int color=9;
===Compruebe si hay entrada de teclado, si la hay, no se dispararán fuegos artificiales
....
while(!kbhit())
{
if(i { =====Haga un bucle y dibuje un píxel... (simule fuegos artificiales floreciendo, graffiti por todas partes...) for(j=0;j { ==Calcular coordenadas px=x+i*cos(j*360/n*PI/180); py =y+i*sin(j*360/n*PI/180); == Comienza el graffiti.... putpixel(px,py,rand() % 16); putpixel(px-1,py,color); putpixel(px,py+1,color); putpixel(px+ 1,py-1,YELLOW); putpixel(px,py-1,YELLOW); putpixel(px+1,py,RED); putpixel(px+1,py+1,RED); } } == Si no está lleno, continúa garabateando if(i>tamaño&&cubierta { setcolor(NEGRO); círculo(x,y,cubierta++); p> delay1=20; } == Si el cuadro está lleno, límpielo y comience de nuevo if(cover= =tamaño) { i=0; x=5rand()%550; y=rand( )%400; portada=0; color=rand()%16; tamaño=5rand()%250; delay1=40; ====Borrar la imagen clearviewport(); ====Comenzar de nuevo drawstar( ); } i+=n1; retraso(retraso1);/*pausa*/ } } =================================== Está bien, eso es todo... es muy agotador leer el código línea por línea. Déjame realizar el proceso yo solo...