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

   绘制坐标系又有了最新的需求,要求在X轴两侧都可以绘制Y坐标轴,具体来说,绘制直角坐标系的时候,X轴的绘制是正常的绘制要求,但是在绘制Y轴的时候,既可以在X轴左侧绘制多个Y轴,也可以在X轴右侧绘制多个Y轴,还有在两边同时绘制多个Y轴。
   还是梳理一下之前的代码哪些能用,哪些要改。
   首先是能复用的功能:
    - 绘制X轴的代码;
    - 绘制Y轴的代码;
    - 计算坐标轴原点的代码;
    - 绘制左侧Y轴原点的代码。
   然后是需要改动的功能:
    - 计算X轴宽度的代码;
    - 绘制右侧Y轴原点的代码。
现在绘制包含窗口左侧右侧都包含多个Y轴的直角坐标系的步骤如下:
  1)计算坐标轴位置信息
    a)计算左侧Y轴所占的宽度,这里每个Y轴的宽度包括长刻度线宽度,也包括长刻度线上的文本宽度(代码实现的时候偷懒,设置的固定宽度)
    b)计算右侧Y轴所占的宽度;
    c)计算直角坐标系的原点坐标,以及X轴和Y轴的宽度
  2)绘制坐标轴
    a)获取左侧从右至左第一个Y轴的原点起始位置
    b)绘制左侧第一个Y轴
    c)依次绘制左侧剩余的Y轴坐标轴
    d)绘制X轴
    e)获取右侧从左至右第一个Y轴的原点起始位置
    f)绘制右侧第一个Y轴
    g)依次绘制右侧剩余的Y轴坐标轴
   程序的效果图如下:
左右两侧都包含多个Y轴的直角坐标系
代码放在了github上面,源码地址:https://github.com/guochao2299/DrawRectangularCoordinateSystem/tree/LeftRightYAxe/DrawRectangularCoordinateSystem3st

猜你喜欢

转载自blog.csdn.net/gc_2299/article/details/79313633