|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# include <graphics.h>
# include <conio.h>
# include <math.h>
void Blook (int length); //画方块函数声明
void StrongBlock (); //动态立体方块函数声明
//主函数
int main ()
{
StrongBlock ();
return 0;
}
//画方块函数定义
void Block (int length,COLORREF color)
{
setorigin (getwidth()/2,getheight()/2); //设置窗口中心为坐标原点
POINT a[4][6]; //定义二维数组存放点,四条边,每条边分五段,也就是六个点
int i,j; //顺势针初始化坐标,第一条边为坐标原点左上方的边
for (i = 0;j < 4;j++)
{
for (i = 0;i < 6;i++) //初始化每条边上的六个点坐标
{
a[j][i].x=(int)pow(-1,j/2+j%2+1)*length*i/5;
a[j][i].y=(int)pow(-1,j/2+1)*length*(5-i)/5;
}
}
setlinecolor (color); //设置线条和颜色
for (i = 0,j = 5;i < 6;i++,j--)
{
line(a[0][i].x,a[0][i].y,a[2][j].x,a[2][j].y); //连接第一条和第三条边上的6对点坐标
line(a[1][i].x,a[1][i].y,a[3][j].x,a[3][j].y); //连接第二条和第四条边上的6对点坐标
}
}
//动态立体方块函数定义
void StrongBlock ()
{
initgraph (800,800);
int length;
float H,S,L;
while (!kbhit())
{
length = 10;
H = 0;
S = 1;
L = 0.5;
while (length <= getwidth()/2)
{
Block(length,HSLtoRGB(H,S,L));
Sleep (150);
length +=4; //长度递变
H +=(float)1.8; //改变颜色
}
length = 400;
H = 360;
S = 1;
L = 0.5;
while (length > 10)
{
Block(length,HSLtoRGB(H,S,L));
Sleep (150);
length -=4; //长度递减
H -=(float)1.8; //改变颜色
}
}
getch ();
closegraph();
} |
-
|