private static bool IsGraphSurfaceBoundaryOk(GraphSurface gs) { if (gs?.GType != GraphType.Boundary) { return(false); } return(gs.ObjectTag != null); }
private void DrawYAbove(PanelControl pan, double yStep, int yPosition, GraphSurface gs, double minValue, double maxValue) { double value = 0; double dyPos = yPosition; var checkValue = Math.Abs(minValue + (20.0 * maxValue)); do { dyPos = dyPos - yStep; value = value + maxValue; DrawYAxisBits(pan, (int)dyPos, gs, value, checkValue); } while (dyPos > 0); }
private void DrawYBelow(PanelControl pan, double yStep, int yPosition, GraphSurface gs, double minValue, double maxValue) { double dyPos = yPosition; var checkValue = Math.Abs(minValue + (20.0 * maxValue)); dyPos = dyPos - yStep; var value = maxValue; do { dyPos = dyPos + yStep; value = value - maxValue; DrawYAxisBits(pan, (int)dyPos, gs, value, checkValue); } while (dyPos < pan.GPan.Height); }
private void DrawBoundaryMarkers(GraphSurface gs, PanelControl pan, Pen pp, int y, ref int yOffset) { var f = new Font("timesnewroman", 8); for (var j = 0; j < gs.PtCount; j++) { var x = Params.GetXScreenPoint(pan, gs, gs.DPts[j].X); if (x > 0) { pan.GrSurface.DrawLine(pp, x, 0, x, pan.GPan.Height); } if (gs.DPts[j].Y > 0) { var yy = Params.GetYScreenPoint(pan, gs.DPts[j].Y); if (yy > 0) { pan.GrSurface.DrawLine(pp, 0, yy, pan.GPan.Width, yy); } } double val = gs.DPts[j].X; string valueString; if (val > 1000) { valueString = ((int)val).ToString(CultureInfo.InvariantCulture); } else { var str1 = Params.SetPlaces(val); valueString = val.ToString(str1); } if (_graphParameters.DrawBoundaryStrings) { var str = gs.Name + " " + valueString; pan.GrSurface.DrawString(str, f, pp.Brush, x + 1, y); } if (_graphParameters.ShowDifferenceMarkers) { DrawDifferenceMarkers(gs, pan, x, f, pp, ref yOffset); } } }
private static void DrawDifferenceMarkerSet(GraphSurface gs2, PanelControl pan, float refX, int x, Font f, Pen pp, ref int yOffset) { var typ = gs2.GType; if (!IsAnyMarkerOrBoundary(typ)) { return; } for (var n = 0; n < gs2.PtCount; n++) { var x2 = Params.GetXScreenPoint(pan, gs2, gs2.DPts[n].X); if ((!IsAnyMarker(typ) || x2 <= x) && typ != GraphType.Boundary) { continue; } var y = 30 + (yOffset * 12); pan.GrSurface.DrawLine(pp, x, y, x2, y); DrawLeftRightArrowHeads(pan, pp, y, x, x2); double val = gs2.DPts[n].X - refX; string valueString; if (val > 1000) { valueString = ((int)val).ToString(CultureInfo.InvariantCulture); } else { var str1 = Params.SetPlaces(val); valueString = val.ToString(str1); } if (x2 > x) { pan.GrSurface.DrawString(valueString, f, pp.Brush, x2 + 5, y - 5); } else { pan.GrSurface.DrawString(valueString, f, pp.Brush, x + 5, y - 5); } yOffset += 1; } }
private string GetLegendNameLabel(GraphSurface gs) { string txt; var source = @" [" + gs.Source + @"]"; if (gs.Source.Length < 1) { source = " "; } if (_graphPanel.ShowLegendGraphId) { txt = @"[" + gs.TagId + @"]" + gs.Name + source; } else { txt = gs.Name + source; } return(txt); }
private void DrawYAxisBits(PanelControl pan, int yPosition, GraphSurface gs, double value, double checkValue) { var f = new Font("timesnewroman", 10); if (_graphParameters.DrawTheGrid) { if (UseGreyGrid) { Pen p = new Pen(Color.DarkSlateBlue) { DashStyle = DashStyle.Dot }; pan.GrSurface.DrawLine(p, 0, yPosition, pan.GPan.Width, yPosition); } else { pan.GrSurface.DrawLine(Pens.Gainsboro, 0, yPosition, pan.GPan.Width, yPosition); } } if (!_graphParameters.DrawTheYAxis) { return; } var str = Params.GetValueString(checkValue, gs, value); var newPosition = yPosition + pan.GPan.Top + 2; var top = pan.GPan.Top + 2; var bot = top + pan.GPan.Height; if (newPosition >= bot || newPosition <= top) { return; } _graphTabPanel.Cst.GrSurface.DrawLine(Pens.Black, pan.GPan.Left - 5, newPosition, pan.GPan.Left, newPosition); if ((newPosition - 5) <= bot) { _graphTabPanel.Cst.GrSurface.DrawString(str, f, Brushes.Black, 15, newPosition - 7); } }
private void DrawYGrid(PanelControl pan, double yStep, GraphSurface gs, double minValue, double maxValue) { var pp = new Pen(Color.Black) { Width = 1 }; if (UseGreyGrid) { pp.Color = Color.Gainsboro; } var dyPos = (int)(pan.GPan.Height - 5 - pan.YOffset + ((minValue * yStep) / maxValue)); DrawYAbove(pan, yStep, dyPos, gs, minValue, maxValue); DrawYBelow(pan, yStep, dyPos, gs, minValue, maxValue); var yPos = (int)(pan.GPan.Height - 5 - pan.YOffset + ((minValue * yStep) / maxValue)); if (_graphParameters.OriginalZeroAxis) { pp.Color = Color.Gainsboro; pp.Width = 3; } pan.GrSurface.DrawLine(pp, 0, yPos, pan.GPan.Width, yPos); _graphTabPanel.Cst.GrSurface.ResetTransform(); _graphTabPanel.Cst.GrSurface.RotateTransform(-90); var y = pan.GPan.Top + pan.GPan.Height / 2; var len = GetTextWidth(gs.GyAxisTitle); y = y + len / 2; _graphTabPanel.Cst.GrSurface.TranslateTransform(_yAxisLabelOffset, y, MatrixOrder.Append); _graphTabPanel.Cst.GrSurface.DrawString(gs.GyAxisTitle, _axisFont, Brushes.Black, 0, 0); _graphTabPanel.Cst.GrSurface.ResetTransform(); }
private void DrawDifferenceMarkers(GraphSurface gs, PanelControl pan, int x, Font f, Pen pp, ref int yOffset) { foreach (var t in pan.TagList) { if (!t.Visible) { continue; } var gs2 = _graphPanel.GetGraphSurfaceFromTag(t.Tag); if (gs2 == null) { continue; } if (gs.TagId == gs2.TagId) { continue; } DrawDifferenceMarkerSet(gs2, pan, gs.DPts[0].X, x, f, pp, ref yOffset); } }