先去easyX官网easyx.cn下载
之后将下载好的easyX与电脑上的Visual版本绑定
新建控制台项目
绘制圆形:
#include<easyx.h>//包含了绘制图形的各类函数
#include<stdio.h>
int main()
{
initgraph(800, 600);//创建绘图窗体
circle(0, 0, 300);//circle(x坐标,y坐标,半径)
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
画出这个四分之一圆的原因是因为,easyX的物理坐标和逻辑坐标原点都默认在左上角顶点,且x轴向右,y轴向下。如果想将圆画在界面的中心,那我们则需要将逻辑坐标原点更改到界面的中心,对于这个界面来说它的中心坐标为(400,300)
我们使用setorigin这个函数设置坐标原点。
#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1,-1);//setaspectratio(x轴缩放因子,y轴缩放因子) 缩放因子为负数时,实现坐标轴翻转
circle(0, 0, 300);//circle(x,y,半径)
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
同心圆:
#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1, -1);
//同心圆
for (int r = 10; r <= 300; r += 10)
{
circle(0, 0, r);
}
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
椭圆:
ellipse(椭圆外切矩形左上角的x坐标,椭圆外切矩形左上角的y坐标,椭圆外切矩形右下角的x坐标,椭圆外切矩形右下角的y坐标)
绘制点:
随机绘制1000个小红点
#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1, -1);
int x, y;
for (int i = 0; i < 1000; i++)
{
x = rand() % (800 + 1) - 400;//随机生成一个数对801取余,值在0-800之间,减去400,值在-400-400之间
y = rand() % (600 + 1) - 300;
putpixel(x, y, RED);//putpixel(x坐标, y坐标, 颜色)
}
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
绘制直线:
#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1, -1);
line(-200, -200, 200, 200);// line(起始点x坐标, 起始点y坐标, 终止点x坐标, 终止点y坐标)
line(-200, 200, 200, -200);
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
圆角矩形:
rectangle(矩形左上角x坐标,矩形左上角y坐标 ,矩形右下角x坐标,矩形右下角y坐标);//这个是矩形的就不演示了
#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1, -1);
//rectangle(矩形左上角x坐标,矩形左上角y坐标 ,矩形右下角x坐标,矩形右下角y坐标)
//rectangle(-200, 100, 200, -100);
//圆角矩形 roundrect(圆角矩形左上角x坐标,圆角矩形左上角y坐标,圆角矩形右下角x坐标,圆角矩形右下角y坐标,构成圆角矩形的圆角的椭圆的宽度,构成圆角矩形的圆角的椭圆的高度)
roundrect(-200, 100, 200, -100, 200, 100);
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
扇形和圆弧:
pie(椭圆外切矩形左上角x坐标,椭圆外切矩形左上角y坐标,椭圆外切矩形右下角x坐标,椭圆外切矩形右下角y坐标,扇形起始角弧度,扇形终止角弧度);
//圆弧
arc(椭圆外切矩形左上角x坐标,椭圆外切矩形左上角y坐标,椭圆外切矩形右下角x坐标,椭圆外切矩形右下角y坐标,扇形起始角弧度,扇形终止角弧度)
#include<easyx.h>
#include<stdio.h>
#define PI 3.14
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1, -1);
pie(-200, 100, 299, -100, 0, PI / 4);
arc(-200, 100, 299, -100, PI/2, PI );
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
多边形用到函数polygon
void polygon(
const POINT *points,
int num
);
/*
points
每个点的坐标,数组元素个数为 num。
该函数会自动连接多边形首尾。
num
多边形顶点的个数。*/
三角形:
#include<easyx.h>
#include<stdio.h>
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1, -1);
//多边形绘制
POINT points[] = { {0,200},{200,-200},{-200,-200} };
polygon(points, 3);
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
正五边形:
#include<easyx.h>
#include<stdio.h>
#include<math.h>
#define PI 3.14
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1, -1);
double theta = PI / 2;//变量theta的初始角度为90°
double delta = 2 * PI / 5;//因为是正五边形,每次增加PI/5
int r = 200;
POINT points[5];
for (int i = 0; i < 5; i++)
{
points[i].x = cos(theta + i * delta) * r;
points[i].y = sin(theta + i * delta) * r;
}
polygon(points, 5);
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}
polyline这个函数用于画连续的多条线段。(不封闭图形)
void polyline(
const POINT *points,
int num
);
#include<easyx.h>
#include<stdio.h>
#include<math.h>
#define PI 3.14
int main()
{
initgraph(800, 600);//创建绘图窗体
setorigin(400, 300);//以物理坐标为基准,设置逻辑坐标
setaspectratio(1, -1);
double theta = PI / 2;//变量theta的初始角度为90°
double delta = 2 * PI / 5;//因为是正五边形,每次增加PI/5
int r = 200;
POINT points[5];
for (int i = 0; i < 5; i++)
{
points[i].x = cos(theta + i * delta) * r;
points[i].y = sin(theta + i * delta) * r;
}
polyline(points, 5);
getchar();//暂时阻塞程序,等待用户按键再关闭
closegraph();//关闭绘图窗体
return 0;
}