static void DrawPlotMarker(LJD.Graphics g, Resources resources, LJD.Pen pen, PointF p, MarkerType markerType) { float markerSize = resources.MarkerSize; switch (markerType) { case MarkerType.Cross: g.DrawLine(pen, new PointF(p.X - markerSize, p.Y - markerSize), new PointF(p.X + markerSize, p.Y + markerSize)); g.DrawLine(pen, new PointF(p.X - markerSize, p.Y + markerSize), new PointF(p.X + markerSize, p.Y - markerSize)); break; case MarkerType.Circle: g.DrawEllipse(pen, new RectangleF(p.X - markerSize, p.Y - markerSize, markerSize * 2, markerSize * 2)); break; case MarkerType.Square: g.DrawRectangle(pen, new RectangleF(p.X - markerSize, p.Y - markerSize, markerSize * 2, markerSize * 2)); break; case MarkerType.Diamond: g.DrawLines(pen, new[] { new PointF(p.X - markerSize, p.Y), new PointF(p.X, p.Y - markerSize), new PointF(p.X + markerSize, p.Y), new PointF(p.X, p.Y + markerSize), new PointF(p.X - markerSize, p.Y), }); break; case MarkerType.Triangle: g.DrawLines(pen, new[] { new PointF(p.X - markerSize, p.Y + markerSize / 2), new PointF(p.X, p.Y - markerSize), new PointF(p.X + markerSize, p.Y + markerSize / 2), new PointF(p.X - markerSize, p.Y + markerSize / 2), }); break; case MarkerType.Plus: g.DrawLine(pen, new PointF(p.X - markerSize, p.Y), new PointF(p.X + markerSize, p.Y)); g.DrawLine(pen, new PointF(p.X, p.Y - markerSize), new PointF(p.X, p.Y + markerSize)); break; case MarkerType.Star: // plus g.DrawLine(pen, new PointF(p.X - markerSize, p.Y), new PointF(p.X + markerSize, p.Y)); g.DrawLine(pen, new PointF(p.X, p.Y - markerSize), new PointF(p.X, p.Y + markerSize)); // cross g.DrawLine(pen, new PointF(p.X - markerSize, p.Y - markerSize), new PointF(p.X + markerSize, p.Y + markerSize)); g.DrawLine(pen, new PointF(p.X - markerSize, p.Y + markerSize), new PointF(p.X + markerSize, p.Y - markerSize)); break; } }