예제 #1
0
        } /* DrawAxisLabelsTime */

        private void PlotOneDataRow(InstrumentData r,
                                    int row
                                    )
        {
            int seriesIdx;

            //g.FillRectangle (new SolidBrush (chartPanel.BackColor), 1, row, chartWidth - 2, this.chartRowWidth);

            float[] data = r.Data();

            for (seriesIdx = 0; seriesIdx < maxNumDataSets; seriesIdx++)
            {
                if (!seriesToPlot[seriesIdx])
                {
                    continue;
                }

                int dataIdx = fieldIdxs[plottingAxisIdx, seriesIdx];

                int   col = chartFirstCol;
                float d   = data[dataIdx];

                if (d == float.NaN)
                {
                    col = chartLastCol;
                }

                else if (d < minValues[dataIdx])
                {
                    col = chartFirstCol;
                }

                else if (d > maxValues[dataIdx])
                {
                    col = chartLastCol;
                }

                else
                {
                    col = chartFirstCol + (int)((d - minValues[dataIdx]) * colFactors[dataIdx] + 0.5f);
                }

                if (col < chartFirstCol)
                {
                    col = chartFirstCol;
                }

                else if (col > chartLastCol)
                {
                    col = chartLastCol;
                }

                plotDC.FillRectangle(seriesBrushes[seriesIdx], col, row, chartColWidth, chartRowWidth);
                plotBufferDC.FillRectangle(seriesBrushes[seriesIdx], col, row, chartColWidth, chartRowWidth);
            }
        } /* PlotOneDataRow */