画圆角矩形函数:roundrect,前四个参数是和矩形一样的,表示先画一个矩形,然后就是要画它的圆角了,要怎么画它的圆角?这里使用四个一样的椭圆来将它的四个角画出来,而在这个里面的椭圆不再需要四个参数也就是两个点了,这里每个椭圆的一个点已经确定,我们只要知道另一个点就行了,但是这时候计算机显然用了另一个更为方便的方法,就是当用那四个参数画出了矩形之后,只要知道椭圆的长宽就可以在矩形四个角处画出四个一模一样的椭圆;这样就正好构成了圆角矩形的四个圆角,再经过一些处理,就化画成了圆角矩形了,这里演示一下:
其实确定这个矩形的长宽和确定他的另一个坐标没什么区别,就是对于使用者来说比较方便;
画完一个矩形后,计算机会在另外四个角重复上述步骤画出一样的,当然这里是我用画图工具画的,当然有点不一样TAT;
所以说圆角矩形(英文是roundrectangle)这里函数roundrect是它的简写,有六个参数,分别是确定矩形的两个坐标,还有就是椭圆的长和宽;(这里有一个要注意的,如果这个椭圆的长宽都超过了超过了矩形的,(当然一个超过了还是可以的,别超过太多)画出来的就不是圆角矩形了:);
#include
#include
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);
roundrect(-100, -200, 100, 200, 50, 50);
getchar();
closegraph();
}
画扇形函数:要画一个扇形,可以从椭圆里面截取:只要在椭圆里面截取部分就行了,如何选取部分?这时候就要用到角度了,但是在变成里面采用的是弧度制,也就是要用角度之前先要定义一个常数PI;所以这个函数有六个函数:四个参数用来画椭圆,另外两个参数用来表示要截取的的起始弧度和终止弧度;起始位置是从椭圆的最右边开始为零弧度;再设置了x,y分别向右向上为正方向,则就是以朝顺时针为正方向;对于这个函数的记忆:可以想到这个函数画出来很像苹果派的一部分,所以就是pie,意为苹果馅饼哈哈;
#include
#include
#define PI 3.14
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);
pie(-100, -200, 100, 200, 0, PI/4);
getchar();
closegraph();
return 0;
}
画圆弧函数:
也是画扇形函数一样的参数,可以想象扇形的那个弧度处就是弧形也就是我们要画的:所以它也有6个参数,和扇形的一样;它的函数就是圆弧的英文arc,代码如下:
#include
#include
#define PI 3.14
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);
arc(-100, -200, 100, 200, 0, PI/4);
getchar();
closegraph();
return 0;
}
画多边形函数:
这个就有一点复杂了:这里涉及一个POINT类型的数组(在easyx.h头文件里面有它的定义,这是一个结构体,里面有两个元素,一个是点的x坐标,另一个是y坐标,这里只要用就行了)polygon有两个参数,一个是POINT型的指针,一个是这个数组的元素数量;然后计算机就会根据这里个点的先后顺序,依次连接它们,构成一个封闭图形;当然,这个函数名也就是它的英语polygon;
这里画一个不规则的四边形:
#include
#include
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);
POINT points[4] = { {100,-200},{0,200},{-10,100},{-100,-200} };
polygon(points, 4);
getchar();
closegraph();
return 0;
}
如果想要画一个规则的形状,自己算的话很难算,所以这时候可以用一点技巧:比如可以用角度计算加循环,比如要画一个五边形;可以把它画在原点处从它的最高的顶点开始,这时候它的最高顶点在y轴,角度刚好为90度,然后每个点都加了72度,当然,这里不是要画弧,不需要根据计算机的默认角度转向计算,可以按照自己的习惯,因为这里只是计算它的坐标,这里画图更好理解:
所以这里要用到角度来求坐标,要用到sin和cos函数,所以要引用头文件#include
#include
#include
#include
#define PI 3.14
int main()
{
initgraph(800, 600);
setorigin(400, 300);
setaspectratio(1, -1);
double theta = PI / 2;
double delta = PI * 2 / 5;
POINT points[5];
int r = 100;
for (int i = 0; i < 5; i++)
{
points[i].x =cos(theta+delta*i)*r;
points[i].y =sin(theta+i*delta)*r;
}
polygon(points, 5);
getchar();
closegraph();
return 0;
}
当然有时候我们画图不想画封闭图形,就想留一个口子,这时候就有一个和polygon原理一样但是最后不会将最后一个点和第一个点连起来的函数polyline;如果同样是这份代码,把polygon函数换成polyline(它的英文翻译后的意思是多段线,也有多边形的意思,但是记第一个不容易搞混)函数就会变成这样:
到这里今天的介绍也结束了~
难熬的日子总会过去, 不信回头看看, 你都已经在不知不觉中熬过了很多苦难。