C#使用GDI+绘制直角坐标系(2)

  前段时间发表了一篇使用C# GDI+绘制直角坐标系的文章《C#使用GDI+绘制直角坐标系》。该文章介绍如何使用GDI+绘制正常状态的直角坐标系,后面又碰到了新的需求,同样是绘制直角坐标系,但要求X轴共用,同时绘制多个Y轴
  一看到这个需求,首先想到的是当初绘制直角坐标系的哪些代码可以用,哪些需要改动。
  首先列出可以复用的地方:

  • 绘制X轴的代码
  • 绘制Y轴的代码

  需要改动的地方:
- 计算坐标轴原点的代码
- 绘制Y轴原点的代码

  因此现在绘制包含多个Y轴的直角坐标系的步骤如下:
  1)计算坐标轴位置信息
    a)计算多个Y轴所占的宽度,这里每个Y轴的宽度包括长刻度线宽度,也包括长刻度线上的文本宽度(代码实现的时候偷懒,设置的固定宽度)
    b)计算直角坐标系的原点坐标,以及X轴和Y轴的宽度
  2)绘制坐标轴
    a)获取从右至左第一个Y轴的原点起始位置
    b)绘制第一个Y轴
    c)依次绘制剩余的Y轴坐标轴
    d)绘制X轴
  下面是效果图:
C#使用GDI+绘制直角坐标系(2)_第1张图片
  代码放在Github上面,地址如下(DrawRectangularCoordinateSystem2st那个文件夹):
https://github.com/guochao2299/DrawRectangularCoordinateSystem/tree/MultiYAxe

你可能感兴趣的:(程序设计,GDI+,C#,直角坐标系,多个Y轴)