用C++和Easyx简单的画一个星空

电子说

1.3w人已加入

描述

前言

 

中秋将至,这里抛砖引玉用C++和Easyx简单的画一个星空出来,画完许个愿,百分百实现!呵呵呵呵

 

一、准备Easyx

 

首先我们要前往Easyx官网下载安装程序,

 

下载完成后打开程序,并点击“下一步”;

 

函数

 

随后选择你的编辑器并点击“安装”。

 

函数

 

二、函数介绍

 

我在这里简单介绍一下几个今天要用的函数:

 

1、solidcircle

 

这个函数用于画无边框的填充圆。

函数原型:

  •  
  •  
  •  
  •  
  •  
void solidcircle(  int x,  int y,  int radius);

 

参数解释:

 

  • x:圆心 x 坐标

  • y:圆心 y 坐标

  • radius:圆的半径

 

2、setfillcolor

 

这个函数用于设置当前设备填充颜色。

函数原型:

  •  
void setfillcolor(COLORREF color);

 

参数解释:

 

color:填充的颜色

 

3、getbkcolor

 

这个函数用于获取当前设备背景色。

 

  •  
COLORREF getbkcolor();

 

4、initgraph

 

这个函数用于初始化绘图窗口。

函数原型:

  •  
  •  
  •  
  •  
  •  
HWND initgraph(  int width,  int height,  int flag = NULL);

 

参数解释:

 

  • width:绘图窗口的宽度

  • height:绘图窗口的高度

  • flag:绘图窗口的样式,默认为 NULL。可为以下值:

 

函数

 

5、closegraph

 

这个函数用于关闭绘图窗口。

  •  
void closegraph();

 

6、putpixel

 

这个函数用于画点。

  •  
  •  
  •  
  •  
  •  
void putpixel(  int x,  int y,  COLORREF color);

 

参数

 

  • x:点的 x 坐标

  • y:点的 y 坐标

  • color:点的颜色

 

三、实现原理和代码

 

这个项目的实现原理并不难,月亮就是一个无边框的填充圆;大星星就是先画一个圆,再在四周用背景色画几个圆;小星星就是在随机位置画点。

 

完整代码如下:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#include #include #include  void star(int x, int y) {  setfillcolor(YELLOW);  solidcircle(x, y, 20);  setfillcolor(getbkcolor());  solidcircle(x - 20, y - 20, 20);  solidcircle(x + 20, y - 20, 20);  solidcircle(x - 20, y + 20, 20);  solidcircle(x + 20, y + 20, 20);  return;} int main() {  srand((unsigned int)time(NULL));  initgraph(640, 480);  setfillcolor(YELLOW);  solidcircle(450, 80, 50);  star(50, 50);  star(570, 400);  star(300, 60);  star(250, 300);  star(50, 400);  for (int i = 0; i < 100; i++) {    putpixel(rand() % 640, rand() % 480, YELLOW);  }  _getch();  closegraph();  return 0;}

 

效果就不放了,感兴趣的可以自己运行一下,也可以自己再拓展一下。

 

  审核编辑:汤梓红


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分