绘制一个充满星星的夜空。怎么做?

用C语言做动画地呈现满天星题目详解:绘制一个充满星星的夜空。星空绘制程序中,可使用结构体数组实现对星星数据的保存。星星可用画点函数画出来白色的点,并使用随机函数随机产生星... 用C语言做
动画地呈现满天星
题目详解:
绘制一个充满星星的夜空。星空绘制程序中,可使用结构体数组实现对星星数据的保存。星星可用画点函数画出来白色的点,并使用随机函数随机产生星星,对结构体中保存的星星进行移动。
展开
 我来答
aomahayang
2017-06-29
知道答主
回答量:1
采纳率:0%
帮助的人:981
展开全部
#include<graphics.h>
#include <time.h>
#include <conio.h>

#define MAXSTAR 200 // 星星总数

struct STAR
{
double x;
int y;
double step;
int color;
};

STAR star[MAXSTAR];

// 初始化星星
void InitStar(int i)
{
star[i].x = 0;
star[i].y =rand() % 480;
star[i].step =(rand() % 5000) / 1000.0 + 1;
star[i].color= (int)(star[i].step * 255 / 6.0 + 0.5); // 速度越快,颜色越亮
star[i].color= RGB(star[i].color, star[i].color, star[i].color);
}
// 移动星星
void MoveStar(int i)
{
// 擦掉原来的星星
putpixel((int)star[i].x, star[i].y, 0);

// 计算新位置
star[i].x +=star[i].step;
if (star[i].x> 640) InitStar(i);

// 画新星星
putpixel((int)star[i].x, star[i].y, star[i].color);
}

// 主函数
void main()
{
srand((unsigned)time(NULL)); //随机种子
initgraph(640,480); // 创建绘图窗口

// 初始化所有星星
for (int i =0; i < MAXSTAR; i++)
{
InitStar(i);
star[i].x= rand() % 640;
}

// 绘制星空,按任意键退出
while(!kbhit())
{
for (int i= 0; i < MAXSTAR; i++)
MoveStar(i);
Sleep(20);
}
closegraph(); // 关闭绘图窗口
}
匿名用户
2016-06-27
展开全部
百度搜索外链音乐:(mp3音乐外链_qq背景音乐外链),选择上传文件把事先下载好的某首歌上传就好了,播放的时候在最下面就会出现这样一个地址(如下)就是一首歌的MP3地址啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式