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

相关文章
|
Python
Python实用记录(十六):PyQt/PySide6联动VSCode便捷操作指南
本文提供了一份详细的PySide6与VSCode联动的操作指南,包括安装配置VSCode、安装必要的扩展、配置扩展以及编辑和运行PySide6项目。文中还提到了相关工具如uic.exe、rcc.exe和designer.exe的用途,并提供了进一步学习的资源。
2547 1
Python实用记录(十六):PyQt/PySide6联动VSCode便捷操作指南
|
数据处理 语音技术 项目管理
人人都是音乐家!中科大&科大讯飞重磅开源OpenMusic:音乐生成更高质量,更有乐感
提出了一种质量感知训练范式,使模型在训练过程中能够感知数据集的质量,从而在音乐性(美学角度)和音频质量方面实现卓越的音乐生成效果。
578 9
人人都是音乐家!中科大&科大讯飞重磅开源OpenMusic:音乐生成更高质量,更有乐感
|
存储 Android开发 Kotlin
悬浮窗的一种实现 | Android悬浮窗Window应用
本文以业务应用为出发点,从零开始抽象一个浮窗工具类,它用于在任意业务界面上展示悬浮窗。它可以同时管理多个浮窗,而且浮窗可以响应触摸事件,可拖拽,有贴边动画。
1502 0
悬浮窗的一种实现 | Android悬浮窗Window应用
Android10(Q) GMS 全家桶移植
Android10(Q) GMS 全家桶移植
630 0
|
Ruby
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory.错误解决办法
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory.错误解决办法
2961 0
|
存储 自然语言处理 搜索推荐
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(一)
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(一)
1093 0
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(一)
|
前端开发 API 数据处理
laravel系列(三) Dcat admin框架工具表单以及普通表单的使用
laravel系列(三) Dcat admin框架工具表单以及普通表单的使用
2195 0
|
canal 关系型数据库 MySQL
【数据同步】你还不会在Docker下安装Canal吗?
最近在工作中遇到了需求,主要是为了完成对Binlog日志的监听和消费,做了一些数据同步的技术选型,最后选择了Canal。
|
Python
联合概率 边缘概率 条件概率 贝叶斯定理
联合概率 边缘概率 条件概率 贝叶斯定理
555 0
|
开发框架 文字识别 前端开发
基于百度智能云的OCR接口进行图文识别
基于百度智能云的OCR接口进行图文识别

热门文章

最新文章