EasyX基础内容(和易错的地方)(一)

简介: 注意代码里面的文字,是易错点

注意代码里面的文字,是易错点

安装 EasyX 绘图库: https://easyx.cn

下载好后,头文件得加上 #include<easyx.h>

代码中一定要加上getchar(),否则图片会一闪而过

🚥🚥🚥🚥🚥🚥

⭐1.用initgraph建立的窗口默认是黑色的

用cleardevice()可以改变颜色,用setbkcolor()表示自己想要什么颜色

一定要注意cleardevice()和setbkcolor()的先后顺序

#include<easyx.h>
#include<stdio.h>
#include<graphics.h>
int main()
{
  initgraph(400, 400);
  setbkcolor(RGB(164, 225, 202));//先写setbkcolor()
  cleardevice();                 //后写cleardevice()
  getchar();
  closegraph();
  return 0;
}

结果
image.png

⭐2.画点

putpixel(x, y, WHITE);//x,y是坐标,第三个是颜色

#include<easyx.h>
#include<stdio.h>
#include<graphics.h>
int main()
{
  initgraph(400, 400);
  int x, y;
  for (int i = 0; i <= 400; i ++ )//随机画点
  {
    x = rand() % (400 + 1) - 200;
    y = rand() % (400 + 1) - 200;
    putpixel(x, y, WHITE);
  }
  getchar();
  closegraph();
  return 0;
}

结果

image.png

⭐3.反转坐标   (Code的y坐标与数学里面的是相反的)

setaspectratio(x,y)

使用setaspectratio(1,-1);可以翻转y轴

image.png

⭐4.画线


line(x1,y1,x2,y2);//(x1,y1):起始坐标     (x2,y2):结尾坐标

#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
int main()
{
  initgraph(400, 400);
  line(10, 10, 300, 300);
  getchar();
  closegraph();
  return 0;
}

image.png

⭐5.画圆


circle(x,y,r);//(x,y)是圆心坐标 ,r是半径

默认圆心在(0,0)处,但是可以用setorigin()来改变圆心位置

#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
int main()
{
  initgraph(400, 400);
  setbkcolor(RGB(164, 225, 202));
  cleardevice();
  setorigin(200, 200);
  circle(0, 0, 50);//已经设置了圆心在(200,200)那么circle里面用0,0即可
  getchar();
  closegraph();
  return 0;
}

image.png

如果想画多个同心圆 ,使用for循环即可

#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
int main()
{
  initgraph(400, 400);
  setbkcolor(RGB(164, 225, 202));
  cleardevice();
  setorigin(200, 200);
  for (int r = 0; r <= 300; r += 50)
  {
    circle(0, 0, r);//其实不断扩大半径即可
  }
  getchar();
  closegraph();
  return 0;
}

image.png

⭐6小插曲——为什么会出现坐标是负数


是因为使用了setaspectratio(1,-1);翻转了y轴setorigin()改变了(0,0)的位置

image.png

⭐7.画矩形

rectangle(x1,y1,x2,y2);//(x1,y1)矩形左上角坐标  (x2,y2)矩形右下角坐标

#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
int main()
{
  initgraph(400, 400);
  setbkcolor(RGB(164, 225, 202));
  setaspectratio(1, -1);
  setorigin(200, 200);
  cleardevice();
  rectangle(-50, 50, -150, -150);
  getchar();
  closegraph();
  return 0;
}

image.png

⭐8.画椭圆


ellipse(x1,y1,x2,y2);//(x1,y1)是椭圆外接矩形左上角坐标(x2,y2)是椭圆外接矩形右下角坐标

相当于在椭圆外套了个矩形

image.png

#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
int main()
{
  initgraph(400, 400);
  setbkcolor(RGB(164, 225, 202));
  setaspectratio(1, -1);
  setorigin(200, 200);
  cleardevice();
  ellipse(-50, 50, -150, -150);
  getchar();
  closegraph();
  return 0;
}

image.png

⭐9.画 圆角矩形——顾名思义,就是一个矩形,只是尖角处比较光滑


roundrect(x1,y1,x2,y2,w,h);//x,y与矩形的定义一样,

w,h看图片理解

image.png

#include<stdio.h>
#include<easyx.h>
#include<graphics.h>
int main()
{
  initgraph(400, 400);
  setbkcolor(RGB(164, 225, 202));
  setaspectratio(1, -1);
  setorigin(200, 200);
  cleardevice();
  roundrect(-50, 50, -150, -150,50,50);
  getchar();
  closegraph();
  return 0;
}

image.png

相关文章
|
C语言
【C语言】扫雷(包括展开和标记)(二)
【C语言】扫雷(包括展开和标记)(二)
66 0
|
存储 编译器 C++
【C++初阶】想要编译器为你干活吗?来试试模板吧(模板初阶)
【C++初阶】想要编译器为你干活吗?来试试模板吧(模板初阶)
72 0
|
7月前
|
存储 编译器 程序员
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)
|
7月前
|
前端开发 算法 JavaScript
【新手解答3】深入探索 C 语言:头文件提供必要的接口、源文件保持实现细节的私有性 + 进一步学习的方向 + 如何快速编写程序并最终能制作小游戏
【新手解答3】深入探索 C 语言:头文件提供必要的接口、源文件保持实现细节的私有性 + 进一步学习的方向 + 如何快速编写程序并最终能制作小游戏
139 0
|
7月前
你还在为做原型而担心吗?神器我拿出来了,剩下的就看你的了
你还在为做原型而担心吗?神器我拿出来了,剩下的就看你的了
32 0
|
存储 安全 C语言
【C语言】扫雷(包括展开和标记)(一)
【C语言】扫雷(包括展开和标记)
94 0
【C语言】扫雷(包括展开和标记)(一)
|
编译器 C语言
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
|
存储 自然语言处理 程序员
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
|
存储 Java 编译器
【C语言】关于我回头学的那些预处理等(五)(重点)
我的第一门语言就是C,但是学艺不精,中途跑去学了C#和Java后,感觉到了C的重要性,毕竟是最接近底层的语言,又跑回来学C。 毕竟前两门的控制语句,变量什么的都是类似的,回到C后只需要学习一些特定C的语法,比如宏,预编译指令等等,这些对我来说都是陌生的词汇。 所以边学边记录一下以前的知识。
147 0
下一篇
DataWorks