DynamicDataDisplay Chart图形缩放 仅X轴缩放的实现

时间:2022-11-18 19:00:06


如题,由于项目需要,X轴是时间轴,比较长,而Y轴值相对固定,而DynamicDataDisplay提供的Zoom方法是实现同时缩放的。只好研究DynamicDataDisplay提供的源代码了。

不难发现,源代码CoordinateUtilities中,提供了单独缩放X轴的方法,RectExtensions中也是都提供了相应的调用,但是发现缩放实现时都只调用了Zoom的方法。

1、于是将Zoom的调用

  public static Rect Zoom(this Rect rect, Point to, double ratio)
  {
   return CoordinateUtilities.RectZoom(rect, to, ratio);
  }
直接改为(不需要放大Y轴)

  public static Rect Zoom(this Rect rect, Point to, double ratio)
  {
            //贾世义取消y轴缩放
   return CoordinateUtilities.RectZoomX(rect, to, ratio);
  }
测试发现,虽然Y轴不再放大了,但是图像的高度还是随着放大。继续研究源码

2、发现IViewport2DExtensions接口中定义了Zoom方法,

于是试着将Vector halfSize = new Vector(visible.Width * factor / 2, visible.Height* factor / 2)

改为            Vector halfSize = new Vector(visible.Width * factor / 2, visible.Height / 2);//* factor 贾世义取消y轴缩放

问题解决。

 

试用请登录http://121.18.78.216/