昨天学习了如何用easyx图形库来绘画哆啦A梦,今天继续学习easyx图形库的其他函数如何使用。easyx的图形函数都很直观,从函数名就可以得出这个结论。
今天学习的函数比较简单,在画布上用数个圆画出一朵花。首先创建一块800*800大小的画布,然后为了方便找点坐标,所以初始化逻辑原点。最后,因为y轴是从上到下的方向,所以需要翻转y轴。之后进行绘画。代码如下:
#include<stdio.h>
#include<easyx.h>
#include<math.h>
#define PI 3.14
int main()
{
initgraph(800, 800);
setbkcolor(WHITE);
cleardevice();
setorigin(400, 400);
setaspectratio(1, -1);//等于1方向不变,等于-1方向相反。前参数为x轴,后参数为y轴
getchar();
closegraph();
return 0;
}
接下来我们以逻辑原点为圆心,画一个半径150像素的圆。
setlinecolor(BLACK);//设直线的颜色
setlinestyle(PS_SOLID, 10);//设直线的样式和粗细
circle(0, 0, 150);//画圆
此时,我们需要在这个圆的周围画一圈圆让他们互相交集,产生花的效果。
此时,周围花的圆心都在最开始画的园的边上。我们以x轴0,150位第一个圆的圆心,以60°为间隔画圆。根据三角函数可知:此时各个圆的圆心坐标公式为:x=cos(n*60)*r,y=sin(n*60)*r。那么写成代码需要用到循环,代码如下:
for (int i = 0; i < 6; i++)
{
int x = cos(i * PI / 3) * 150;//i为当前圆的下标数,150为半径
int y = sin(i * PI / 3) * 150;
circle(x, y, 150);
}
完整的代码如下:画出来的图与效果图一致
#include<stdio.h>
#include<easyx.h>
#include<math.h>
#define PI 3.14
int main()
{
initgraph(800, 800);
setbkcolor(WHITE);
cleardevice();
setorigin(400, 400);
setaspectratio(1, -1);
setlinecolor(BLACK);
setlinestyle(PS_SOLID, 10);
circle(0, 0, 150);
for (int i = 0; i < 6; i++)
{
int x = cos(i * PI / 3) * 150;
int y = sin(i * PI / 3) * 150;
circle(x, y, 150);
}
getchar();
closegraph();
return 0;
}