c语言流星雨,流星雨程序设计中 保证流行不产生在同一列的筛选函数

君,已阅读到文档的结尾了呢~~
c语言课程设计 郝斌c语言大纲 c语言二级考试大纲 c语言程序设计教程 c语言程序设计基础 c语言 教学大纲 c语言程序设计 c语言程序设计pdf c语言程序设计实例 c语言程序设计软件
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
c语言程序设计课程设计大纲
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口2559人阅读
【Thinking C/C++】(111)
程序模拟一组流星飞向地面的情景。流星用大写字母不表示。程序产生一组流星(比如10个),从屏幕顶部下降飞向地面。一组流星中,每个流星的字符颜色是随机的,下降的位置是随机的,下降的速度也是随机的。
数字流星雨代码:
// 流星雨.cpp : Defines the entry point for the console application.
///////////////////////////////////////////////////
// 程序名称:数字流星雨
// 最后修改:
///////////////////////////////////////////////////
#include &windows.h&
#include &time.h&
#include &stdlib.h&
#include &graphics.h&
#include &conio.h&
#include &math.h&
/***********************宏定义**********************/
#define PI 3.1415926
#define WIDTH 200
//屏幕宽度,流星出生区域
#define HEIGHT 150
//屏幕高度,流星出生区域
#define V 20
//流星速度,单次移动的像素数
#define LENGTH 20
//流星字符数
#define DELAY 30
#define NUM 45
//流星个数
/******************定义流星结构体*******************/
struct meteor
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; i & NUM; i++){
//对NUM个流星体初始化
InitMeteor(&me[i]);
while(c != 27){
BeginBatchDraw();
//开始批量绘图
Meteors(me);
//绘制一帧动画
FlushBatchDraw();
//执行未完成的绘制任务
Sleep(DELAY);
cleardevice();
for(int i = 0; i & NUM; i++){
me[i].yh += V;
Move(me[i].str);
if(me[i].yh & HEIGHT + LENGTH * V){
InitMeteor(&me[i]);
if(kbhit()) {
c = getch();
EndBatchDraw();
//结束批量绘图
closegraph();
//结束绘图环境
/***********************函数体**********************/
char AsciiRand(){
//产生随机可见ASCII码
return ((char)(rand() % (126 -33) + 33));
void Move(char *p){
//字符后移,可以使显示时字符相对屏幕位置不变
char *pt = p + LENGTH;
while(pt & p){
*(--pt) = *(pt - 1);
*p = AsciiRand();
void InitMeteor(struct meteor *me){ //对一颗流星初始化
me-&x0 = rand() % WIDTH;
me-&yh = me-&y0 = rand() % HEIGHT;
for(int i = 0; i & LENGTH; i++)
*(me-&str + i) = AsciiRand();
int color(int y, int y0, int yh) {//确定流星的颜色
//出生点之前的流星体置成黑色
if(y & y0) {
color = 0;
//流星颜色自头至尾按照余弦函数递减
//尾迹消失
color = (int)(255* cos((yh - y) * PI / ( 2 * LENGTH * V)));
//打印一帧流星的画面
void Meteors(struct meteor me[]){
//设置格式:背景透明,字符高度,字体粗细,字体
setbkmode(TRANSPARENT);
setfont(12, 12, &宋体&);
//开始打印一帧图像
for(int n = 0; n & NUM; n++){
for(int j = 0; j & 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]);
转载请注明出处:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:989454次
积分:14300
积分:14300
排名:第763名
原创:416篇
转载:14篇
译文:18篇
评论:319条
关注图像处理与分析、图像工程、信息隐藏、算法研究、软件项目管理、计算机视觉、机器学习、物联网等学科和产业,希望结识更多同道中人。
微信公众号: songzitea
拒绝索取源代码
文章:43篇
阅读:63295
文章:22篇
阅读:53881
文章:60篇
阅读:83306
文章:33篇
阅读:95736
文章:10篇
阅读:51280
文章:46篇
阅读:150514
文章:46篇
阅读:209833
(2)(4)(6)(9)(27)(22)(6)(9)(6)(6)(4)(1)(2)(4)(10)(9)(4)(4)(5)(5)(14)(9)(6)(7)(5)(4)(5)(1)(2)(3)(6)(11)(6)(14)(34)(25)(21)(19)(6)(13)(15)(1)(2)(31)(4)(7)(7)(11)(3)(1)(1)(3)(1)(1)(2)(1)(2)君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
10级C语言课程设计任务书
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口&nbsp&&&>C语言课程设计报告--流星雨功能的实现
C语言课程设计报告--流星雨功能的实现
编号:2-170975 | doc 格式 | 2.72M |
Ta 们刚刚下载了...

我要回帖

更多关于 c语言程序设计pdf下载 的文章

 

随机推荐