C语言利用EasyX绘制小企鹅表情包

发布时间:2022-12-21 11:29

使用 C 语言调用EasyX绘图库绘制小企鹅表情包,简直太可爱了!

图片[1] - C语言利用EasyX绘制小企鹅表情包 - 尘心网

简单分析一下,这个小企鹅的构成,主要是由黑白颜色和简单的圆与椭圆构成,也不是很复杂,如果能够通过平移它的位置和上下位置,就可以实现一个动态效果,如下是实现的效果。

图片[2] - C语言利用EasyX绘制小企鹅表情包 - 尘心网
源码如下:

///
// 程序名称:动态企鹅表情包
// 编译环境:Mictosoft Visual Studio 2013, EasyX_20200315
//
 
#include<graphics.h>
#include<conio.h>
void QinE(int x,int y,int N);
 
int main()
{
  initgraph(640,480);
  setbkcolor(WHITE);
  cleardevice();
  int y = 0;
  BeginBatchDraw();
  int i = 0;
  int N = 0;
  int P = 1;
  while (true)
  {
    if (i > 400)
    {
      P = P*(-1);
      N = 1;
    }
    if (i < 0)
    {
      P = P*(-1);
      N = 0;
    }
    i = i + P * 3;
    if (i % 4 == 0)
    {
      y = 8;
    }
    else
    {
      y = 0;
    }
    QinE(i, y,N);
    FlushBatchDraw();
    Sleep(10);
    cleardevice();
    
  }
  EndBatchDraw();
  _getch();
  return 0;
}
 
void QinE(int x, int y,int N)
{
  // 绘制头
  setlinecolor(BLACK);
  setlinestyle(PS_SOLID,2);
  ellipse(43+x,279+y,229+x,436+y);
  arc(77+x, 310+y, 139+x, 430+y,0,4.654);
  arc(150+x, 310+y, 210+x, 426+y, 5.0, 3.12);
  setfillcolor(BLACK);
  solidellipse(124+x,351+y,161+x,374+y);
  floodfill(145+x,312+y,BLACK);
  solidcircle(106+x,360+y,5);  // 左眼
  solidcircle(184+x,366+y,5);  // 右眼
  if (N)
  {
    // 摇摆的手
    arc(4+x,292+y,146+x,586+y,1.442,4.73);
    arc(197+x, 336+y, 328+x, 526+y, 1.53, 2.11);
    arc(240+x,285+y,403+x,661+y,2.32,4.41);
  }
  // 对称一下
  else
  {
    arc(110 + 15 + x, 292 + y, 252 + 15 + x, 586 + y, 4.73, 1.72);
    arc(-46 + x, 336 + y, 75 + x, 526 + y, 1.03, 1.68);
    arc(-131 + x, 285 + y, 32 + x, 661 + y, 4.84, 0.79);
  }
  setfillcolor(RGB(213, 206, 201));
  floodfill(130+x, 460+y, BLACK);
}

文档下载:C语言利用EasyX绘制小企鹅表情包.doc文档

THE END
喜欢就支持一下吧