gpt4 book ai didi

c# - ZedGraph 如何检测放大或缩小?

转载 作者:行者123 更新时间:2023-11-30 20:58:30 25 4
gpt4 key购买 nike

我已经使用 ZedGraph 一段时间了,但经过数小时的搜索后我感到很沮丧,我找不到如何区分检测缩放事件是“放大”还是“缩小”还是“全部缩小”?

实际上,我正在制作自己的放大和缩小版本,以便在每种情况下对特定数据进行采样,我真的需要找到一种方法来检测缩放事件的类型。

如果有人有想法,请帮助我。

谢谢。

最佳答案

早些时候,我通过检查 zedGraphControl1.GraphPane.XAxis.Scale.Max 值是否小于图表中的点数来检测放大或缩小。如果小于则放大是有意的,反之亦然。然而,这并不是万无一失的,因为有时缩小会被检测为放大。

经过大量搜索,我发现是这样的: http://sourceforge.net/p/zedgraph/discussion/392232/thread/d33cfd8c/

因此,我使用类似的技术通过计算所选区域的面积来改进检测当用户使用左键单击并拖动(使用 zedGraphControl1.GraphPane.XAxis.Scale.Max 和 zedGraphControl1.GraphPane.XAxis.Scale.Min 的新值)放大时缩放区域,并将该区域与整个图表的区域进行比较(使用 zedGraphControl1.GraphPane.XAxis.Scale.Max 和 zedGraphControl1.GraphPane.XAxis.Scale.Min 的先前值。

喜欢这里:

private void zedGraphControl1_ZoomEvent(ZedGraphControl sender, ZoomState oldState, ZoomState newState)
{

if (((lastYAxisMax - lastYAxisMin) * (lastXAxisMax - lastXAxisMin)) > ((sender.GraphPane.XAxis.Scale.Max - sender.GraphPane.XAxis.Scale.Min) * (sender.GraphPane.YAxis.Scale.Max - sender.GraphPane.YAxis.Scale.Min)))
{
zoomIn = true;
zoomOut = false;
}
else
{
zoomIn = false;
zoomOut = true;
}
}

知道没有简单的方法来做到这一点真的很令人失望,但到目前为止它工作正常,因为用户选择的区域不能等于或大于图表区域。

希望这对某人有帮助。

关于c# - ZedGraph 如何检测放大或缩小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com