public AddLines ( |
||
g | ||
cs | ||
return | void |
public void AddLines(Graphics g, ChartStyle cs)
{
// Plot lines:
foreach (DataSeries ds in DataSeriesList)
{
if (ds.LineStyle.IsVisible == true)
{
Pen aPen = new Pen(ds.LineStyle.LineColor, ds.LineStyle.Thickness);
aPen.DashStyle = ds.LineStyle.Pattern;
if (ds.LineStyle.PlotMethod == LineStyle.PlotLinesMethodEnum.Lines)
{
for (int i = 1; i < ds.PointList.Count; i++)
{
if (!ds.IsY2Data)
{
g.DrawLine(aPen, cs.Point2D((PointF)ds.PointList[i - 1]),
cs.Point2D((PointF)ds.PointList[i]));
}
else
{
g.DrawLine(aPen, cs.Point2DY2((PointF)ds.PointList[i - 1]),
cs.Point2DY2((PointF)ds.PointList[i]));
}
}
}
else if (ds.LineStyle.PlotMethod == LineStyle.PlotLinesMethodEnum.Splines)
{
ArrayList al = new ArrayList();
for (int i = 0; i < ds.PointList.Count; i++)
{
PointF pt = (PointF)ds.PointList[i];
if (!ds.IsY2Data)
{
if (pt.X >= cs.XLimMin && pt.X <= cs.XLimMax &&
pt.Y >= cs.YLimMin && pt.Y <= cs.YLimMax)
{
al.Add(pt);
}
}
else
{
if (pt.X >= cs.XLimMin && pt.X <= cs.XLimMax &&
pt.Y >= cs.Y2LimMin && pt.Y <= cs.Y2LimMax)
{
al.Add(pt);
}
}
}
PointF[] pts = new PointF[al.Count];
for (int i = 0; i < pts.Length; i++)
{
if (!ds.IsY2Data)
{
pts[i] = cs.Point2D((PointF)(al[i]));
}
else
{
pts[i] = cs.Point2DY2((PointF)(al[i]));
}
}
g.DrawCurve(aPen, pts);
}
aPen.Dispose();
}
}
// Plot Symbols:
foreach (DataSeries ds in DataSeriesList)
{
for (int i = 0; i < ds.PointList.Count; i++)
{
PointF pt = (PointF)ds.PointList[i];
if (!ds.IsY2Data)
{
if (pt.X >= cs.XLimMin && pt.X <= cs.XLimMax &&
pt.Y >= cs.YLimMin && pt.Y <= cs.YLimMax)
{
ds.SymbolStyle.DrawSymbol(g, cs.Point2D((PointF)ds.PointList[i]));
}
}
else
{
if (pt.X >= cs.XLimMin && pt.X <= cs.XLimMax &&
pt.Y >= cs.Y2LimMin && pt.Y <= cs.Y2LimMax)
{
ds.SymbolStyle.DrawSymbol(g, cs.Point2DY2((PointF)ds.PointList[i]));
}
}
}
}
}
public override void DrawRect(System.Drawing.RectangleF dirtyRect) { var g = new Graphics(); g.Clear(backColor); cs.ChartArea = this.ClientRectangle; AddData(g); SetPlotArea(g); cs.AddChartStyle(g); dc.AddLines(g, cs); lg.AddLegend(g, dc, cs); g.Dispose(); }