Exemplo n.º 1
0
        virtual protected void DisplayColumnsAsLinear(System.Windows.Forms.PaintEventArgs e, int columnWidth, int columnWidthNoMargin, int columnStartOffset, int verticalAxisMaxValueInPixels, int lowerLeftX, int lowerLeftY)
        {
            Point Base0, Base1, Base2, Base3;

            IEnumerator Iterator            = this.ChartDescription.Columns.GetEnumerator();
            ChartColumn previousColumn      = null;
            Point       prevBase0           = new Point(0, 0);
            Point       prevBase1           = new Point(0, 0);
            Point       prevBase2           = new Point(0, 0);
            Point       prevBase3           = new Point(0, 0);
            int         columnCurrentOffset = columnStartOffset;
            int         offsetFor0          = (-this.ChartDescription.VerticalAxisMinValue) * verticalAxisMaxValueInPixels / (this.ChartDescription.VerticalAxisMaxValue - this.ChartDescription.VerticalAxisMinValue);

            while (Iterator.MoveNext())
            {
                ChartColumn currentColumn = (ChartColumn)Iterator.Current;
                Debug.Assert(currentColumn.PositiveValuesSum <= this.ChartDescription.VerticalAxisMaxValue, "Chart.DisplayColumns_BarWith3d", "Vertical axis overflow, verify why current column value is higher than axis vertical value");
                Debug.Assert(this.ChartDescription.VerticalAxisMaxValue > 0, "Chart.DisplayColumns_BarWith3d", "Integer divided by 0");

                Base0 = new Point(columnCurrentOffset, lowerLeftY - offsetFor0);
                Base1 = new Point(columnCurrentOffset + columnWidthNoMargin, lowerLeftY - offsetFor0);
                Base2 = new Point(columnCurrentOffset + columnWidthNoMargin + this.ChartDescription.DeltaDepth, lowerLeftY - offsetFor0 - this.ChartDescription.DeltaDepth);
                Base3 = new Point(columnCurrentOffset + this.ChartDescription.DeltaDepth, lowerLeftY - offsetFor0 - this.ChartDescription.DeltaDepth);

                currentColumn.DisplayAsLinear(e, this, previousColumn, columnWidthNoMargin, verticalAxisMaxValueInPixels, Base0, Base1, Base2, Base3, prevBase0, prevBase1, prevBase2, prevBase3);

                // Next
                prevBase0            = Base0;
                prevBase1            = Base1;
                prevBase2            = Base2;
                prevBase3            = Base3;
                columnCurrentOffset += columnWidth;
                previousColumn       = currentColumn;
            }
        }