private void InitialGraph() { graphProperties = new GraphProperties(); graphData = new DataGraph(); initialRect = new DataRect(); // 默认初始处于滚动模式 GraphStyle = GraphMode.FixMoveMode; IsShowGrid = false; GraphTitle = "位移实时显示曲线"; AxisXTitle = "时间(s)"; AxisYTitle = "位移(mm)"; pbZoom.BackColor = Color.FromArgb(50, 0, 64, 128); pbZoom.Visible = false; MsgOutput = "Ready"; }
/// <summary>矩形框选放大 /// </summary> private void ZoomInSelectedRect() { DataRect selectedRect = new DataRect( pbZoom.Location.X, pbZoom.Location.X + pbZoom.Width, pbZoom.Location.Y, pbZoom.Location.Y + pbZoom.Height); DataRect zoomInRect = GetZoomedRect(selectedRect); if (zoomInRect.XRange >= XDataAccuracy && zoomInRect.YRange >= YDataAccuracy) { SetDisplayRect(zoomInRect); MsgOutput = "Zoom in normally"; } else if (zoomInRect.XRange >= XDataAccuracy) { SetDisplayRect(zoomInRect.XMin, zoomInRect.XMax, (zoomInRect.YMin + zoomInRect.YMax - YDataAccuracy) / 2F, (zoomInRect.YMin + zoomInRect.YMax + YDataAccuracy) / 2F); MsgOutput = "Zoom in to the Y data accuracy"; } else if (zoomInRect.YRange >= YDataAccuracy) { SetDisplayRect( (zoomInRect.XMin + zoomInRect.XMax - XDataAccuracy) / 2F, (zoomInRect.XMin + zoomInRect.XMax + XDataAccuracy) / 2F, zoomInRect.YMin, zoomInRect.YMax); MsgOutput = "Zoom in to the X data accuracy"; } else { SetDisplayRect( (zoomInRect.XMin + zoomInRect.XMax - XDataAccuracy) / 2F, (zoomInRect.XMin + zoomInRect.XMax + XDataAccuracy) / 2F, (zoomInRect.YMin + zoomInRect.YMax - YDataAccuracy) / 2F, (zoomInRect.YMin + zoomInRect.YMax + YDataAccuracy) / 2F); MsgOutput = "Zoom in to all data accuracy"; } }
private void SetDisplayRect(DataRect newRect) { graphData.DisplayRect.UpdateRect(newRect); }