EllipseObj 使用
在图表中,显示一条直线,直线上显示一个圆点,如下图效果

使用EllipseObj显示圆点,半径为5像素点,在ZedGraph中,XY轴显示比例不同,5像素点代表的值也就不同,需要使用Axis的Transform与ReverseTransform进行转换,代码如下:
/// <summary> /// 显示点 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="borderColor"></param> /// <param name="fillColor"></param> /// <param name="enableClick"></param> public void DisplayRationPoint(float x, float y, Color borderColor, Color fillColor, bool enableClick = true) { //数值转换为像素值 var pix1X = _zedGraph.GraphPane.XAxis.Scale.Transform(x); var pix1Y = _zedGraph.GraphPane.YAxis.Scale.Transform(y); //起始点 var pix2X = pix1X - 5; var pix2Y = pix1Y - 5; //像素值转换为实际值 var startX = _zedGraph.GraphPane.XAxis.Scale.ReverseTransform(pix2X); var startY = _zedGraph.GraphPane.YAxis.Scale.ReverseTransform(pix2Y); //实际的宽度与高度 var width = (startX - x)*2; var height = (startY - y)*2; EllipseObj ellipseObj = new EllipseObj(startX, startY, width, height, borderColor, fillColor); ellipseObj.Location.CoordinateFrame = CoordType.AxisXYScale; ellipseObj.IsClippedToChartRect = true; ellipseObj.Location.AlignH = AlignH.Center; ellipseObj.Location.AlignV = AlignV.Center; _zedGraph.GraphPane.GraphObjList.Add(ellipseObj); _zedGraph.AxisChange(); _zedGraph.Invalidate(); }

浙公网安备 33010602011771号