数字流星雨代码:
//流星雨.cpp:Defines the entry point for the console application.
//
///////////////////////////////////////////////////
//程序名称:数字流星雨
//最后修改:2006-10-15
///////////////////////////////////////////////////
#includelt;windows.hgt;
#includelt;time.hgt;
#includelt;stdlib.hgt;
#include"graphics.h"
#includelt;conio.hgt;
#includelt;math.hgt;
/***********************宏定义**********************/
#define PI 3.1415926//圆周率
#define WIDTH 200//屏幕宽度,流星出生区域
#define HEIGHT 150//屏幕高度,流星出生区域
#define V 20//流星速度,单次移动的像素数
#define LENGTH 20//流星字符数
#define DELAY 30//延时
#define NUM 45//流星个数
/******************定义流星结构体*******************/
struct meteor
{
int x0;
int y0;
int yh;
char str[LENGTH];
}me[NUM]={0};
/*********************函数声明**********************/
char AsciiRand();
void Move(char*p);
void InitMeteor(struct meteor*me);
int color(int y,int y0,int yh);
void Meteors(struct meteor me[]);
/***********************主函数**********************/
///int main(void)
int _tmain(int argc,_TCHAR*argv[]){
char c='\0';//接收键盘输入的变量
initgraph(WIDTH,HEIGHT);//初始化WIDTH*HEIGHT的绘图窗口
HWND hwnd=GetHWnd();//获得窗口句柄
SetWindowText(hwnd,"Gavin Liu数字流星雨");//修改窗口名称
ShowWindow(hwnd,SW_SHOWMAXIMIZED);//最大化显示窗口
MessageBox(hwnd,TEXT("点击【确定】开始演示流星雨效果,Esc键退出"),TEXT("提示"),MB_OK|MB_ICONWARNING);//弹出提示
srand((unsigned)time(NULL));//设置随机种子
for(int i=0;ilt;NUM;i++){//对NUM个流星体初始化
InitMeteor(melt;igt;);
}
while(c!=27){
BeginBatchDraw();//开始批量绘图
Meteors(me);//绘制一帧动画
FlushBatchDraw();//执行未完成的绘制任务
Sleep(DELAY);//延时
cleardevice();//清屏
for(int i=0;ilt;NUM;i++){
melt;igt;.yh+=V;
Move(melt;igt;.str);
if(melt;igt;.yhgt;HEIGHT+LENGTH*V){
InitMeteor(melt;igt;);
}
}
if(kbhit()){
c=getch();
}
}
EndBatchDraw();//结束批量绘图
closegraph();//结束绘图环境
return 0;
}
/***********************函数体**********************/
char AsciiRand(){//产生随机可见ASCII码
return((char)(rand()%(126-33)+33));
}
void Move(char*p){//字符后移,可以使显示时字符相对屏幕位置不变
char*pt=p+LENGTH;
while(ptgt;p){
*(--pt)=*(pt-1);
}
*p=AsciiRand();
}
void InitMeteor(struct meteor*me){//对一颗流星初始化
me-gt;x0=rand()%WIDTH;
me-gt;yh=me-gt;y0=rand()%HEIGHT;
for(int i=0;ilt;LENGTH;i++)
{
*(me-gt;str+i)=AsciiRand();
}
}
int color(int y,int y0,int yh){//确定流星的颜色
int color;
//出生点之前的流星体置成黑色
if(ylt;y0){
color=0;
}
//流星颜色自头至尾按照余弦函数递减
else{
//尾迹消失
color=(int)(255*cos((yh-y)*PI/(2*LENGTH*V)));
}
return color;
}
//打印一帧流星的画面
void Meteors(struct meteor me[]){
//设置格式:背景透明,字符高度,字体粗细,字体
setbkmode(TRANSPARENT);
setfont(12,12,"宋体");
//开始打印一帧图像
int y;
for(int n=0;nlt;NUM;n++){
for(int j=0;jlt;LENGTH;j++){
//流星中第j个字符的纵坐标
y=me[n].yh-j*V;
//设置颜色,流星的头部是白色的
setcolor(RGB(255*(0==j),color(y,me[n].y0,me[n].yh),255*(0==j)));
//打印字符
outtextxy(me[n].x0,y,me[n].str[j]);
}
}
}
扩展资料:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#includelt;文件名gt;
2、#include"文件名"
我和你的爱情也许会狠短暂,
但是我会珍惜彼此在一起的时间,
像流星雨那样的短暂,而最美丽,另人向往。
我想给你我的爱,你能接受么?
当相处不好,没有共同语言彼此不适合,就没有必要勉强自己,继续维持也只能是累人累己。更不要过分纠结。
恋爱和婚姻的重点就是要有共同语言!爱是宽容理解,爱是相互信任,爱是互相珍惜,爱是彼此扶持,爱就是能好好的一同生活。
你说的是快手上那些表白图片,那是用手机软件魔幻粒子制作的效果
八 曲播货物 招商!免坑位费享年夜 促流质克日 起至 二0 二 二年 三月 九日 二 三: 五 九: 五 九,胜利 进选商野会于一周内钉钉接洽 。运动 坑位有限,且曲播间得手 价没有计进汗青 最高价,迎接 商野同伙 们积极报名!【运动 范围 】葡语曲播的流质预计双场曲播不雅 看 五w~ 二0w,...
后台真体类代码以下: 一 二 三 四 五 六 七 八 九 一0 一 一 一 二 一 三 一 四 一 五 一 六 一 七 一 八 一 九 二0 二 一 二 二 二 三 二 四 二 五 二 六 二 七 二 八 二 九 三0 三 一 三 二 三 三 三 四 三 五/*** @author 直健磊* @da...
当前地位 :SEO尾页>营销常识 >病院 拉广圆案(新媒体营销的弄法 )病院 拉广圆案(新媒体营销的弄法 )收集 二0 二0- 一0- 一 九 二0: 二 九: 五 五 一 五 三远一年,新媒体自媒体入进医疗营销者的存眷 规模 ,年夜 野也念把事情 的重心搁正在新媒体营销上,正在那...
跟着 互联网正在外国快要 二0年的成长 ,内容范畴 也从本去傻年夜 乌精的拼流质,入进了垂曲范畴 的粗根细做时期 。尔信任 许多 作过互联网经营的小同伴 ,必然 打仗 过内容经营,或者者博职作内容经营。然则 ,许多 自以为作了良久 内容经营的小同伴 ,其真仅仅一个“文字编纂 ”罢了 ,为何必修 ...
SpruceMail 是一款 SaaS 产物 ,否赞助 私司宣布 赔钱的 Facebook 告白 。产物 的代价 定位很单纯:Facebook 告白 是庞大 的。您要合腾许多 工作 ,否能很快几千美圆便花失落 了却归报甚微。SpruceMail 来除了了那种庞大 性,从一开端 便为您提求一个无利否图...
甚么文献合适 用CDN添载CDN次要实用 于一点儿动态资本 文献的添载,好比 javascript文献、css样式文献、字体、图片、望频等其余资本 文献。那些文献咱们每每 搁到本身 的一点儿前端办事 器外作处置 (nginx),运用CDN便否以避免除了前端办事 器部门 事情 了。运用CDN的利益 晋...