06.形状的样式

  • 学习人数 15K+
  • 适合有C语言基础人群学习
avatar
林耿亮

你好编程主讲老师

本节中的所有代码窗体大小均为800 * 600。坐标系原点在窗体中心,X轴正方向向右,Y轴正方向向上。

1. 仅描边

使用circle函数在窗体上绘制圆心为(0, 0),半径为200的圆形。

#include <easyx.h>
  #include <stdio.h>
  
  int main()
  {
      initgraph(800, 600);
      setorigin(400, 300);
      setaspectratio(1, -1);
  
      //  以(0, 0)为圆心绘制半径为200的圆形
      circle(0, 0, 200);
  
      getchar();
      closegraph();
      return 0;
  }

运行后,窗体上出现了一个圆形。

描边圆

仔细观察这个图形可以发现,它由圆形边缘的白色线条构成,而圆形的内部没有填充任何颜色。

我们将图形边缘的线条称为图形的描边。描边的颜色默认是白色。

之前我们学习过的绘制形状的函数,例如:circlerectangleellipse等都是使用描边绘制图形。

描边的颜色以及样式是可以更改的。使用,setlinecolor函数(设置线条颜色)可以更改描边颜色。

setlinecolor

void setlinecolor(COLORREF color);
参数 类型 意义
color COLORREF 将要设置的画线颜色

返回值 无

若要将描边设置为黄色,可以使用如下代码。

setlinecolor(YELLOW);

先将描边颜色设置为黄色,再绘制一个描边圆形。

#include <easyx.h>
  #include <stdio.h>
  
  int main()
  {
      initgraph(800, 600);
      setorigin(400, 300);
      setaspectratio(1, -1);
  
      //  设置描边颜色为黄色
      setlinecolor(YELLOW);
      circle(0, 0, 200);
  
      getchar();
      closegraph();
      return 0;
  }

黄色描边圆形

除了可以设置描边的颜色外,还能设置描边的样式。

setlinestyle

这个函数用于设置当前设备画线样式。

void setlinestyle(
      int style,
      int thickness = 1,
      const DWORD *puserstyle = NULL,
      DWORD userstylecount = 0
  );
参数 类型 意义
style int 画线样式
thickness int 线的宽度,以像素为单位
puserstyle const DWORD *puserstyle 用户自定义样式数组,仅当线型为PS_USERSTYLE时该参数有效
userstylecount userstylecount 用户自定义样式数组的元素数量