利用c语言绘制漫天星空-动画
生活随笔
收集整理的這篇文章主要介紹了
利用c语言绘制漫天星空-动画
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
運行的效果如下:
源代碼:
// 程序名稱:星空 // 編譯環境:Visual C++ 6.0,EasyX 2011驚蟄版 // 最后更新:2009-2-22 // #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(); // 關閉圖形窗口 }總結
以上是生活随笔為你收集整理的利用c语言绘制漫天星空-动画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可视化界面 Sentinel 流控卫兵
- 下一篇: 月模拟题3 201609-3 炉石传说