无情的世界无情你mp3:有没有高手会用C语言编会发光的五角星

来源:百度文库 编辑:高校问答 时间:2024/04/28 01:50:20
最好把思路一并附上

立 体 五 角 星
#include<graphics.h>
#include<math.h> /* 插入数学头文件 */
#define PI 3.1415926 /* 宏定义 PI */
float th=PI/180; /*定义全局变量 th */
main()
{
int gd=DETECT,gm,i,j;
initgraph(&gd,&gm,"");
setbkcolor(BLUE);
star(320,240,120); /*调用自定义函数star()。*/
while(!kbhit()) /*下面循环体是绘制光芒部分 */
{
setcolor(YELLOW);
for(j=0;j<20;j++)
{
for(i=0;i<120;i++)
ellipse(320,240,i*3,1+i*3,125+j*20,125+j*10);
delay(5000);
}
setcolor(BLACK);
for(j=0;j<20;j++)
{
for(i=0;i<120;i++)
ellipse(320,240,i*3,1+i*3,125+j*20,125+j*10);
delay(5000);
}
}
getch();
closegraph();
}

star(int x,int y,int r)
{
int r0=r*sin(18*th)/cos(36*th); /*计算小圆半径r0 */
int i,color;
int x1[6],y1[6],x2[6],y2[6];
for(i=0;i<6;i++)
{
x1[i]=x+r*cos((90+i*72)*th); /* 计算出大圆上的五个平均分布点的坐标*/
y1[i]=y-r*sin((90+i*72)*th);
x2[i]=x+r0*cos((54+i*72)*th); /* 计算出小圆上的五个平均分布点的坐标*/
y2[i]=y-r0*sin((54+i*72)*th);
}
setcolor(RED);
for(i=0;i<5;i++) /* 将相应的点用线连接起来。*/
{
line(x,y,x1[i],y1[i]);
line(x,y,x2[i],y2[i]);
line(x1[i],y1[i],x2[i],y2[i]);
line(x1[i],y1[i],x2[i+1],y2[i+1]);
}
for(i=0;i<10;i++) /* 分别填充相应部位,形成立体效果*/
{
setfillstyle(1,i%2?RED:LIGHTRED);
floodfill(x+10*cos(i*36*th),y-10*sin(i*36*th),RED);
}
}