Exemplo n.º 1
0
        /// <summary>
        /// 绘图。
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        public Bitmap Draw(TwoNumeralKeyAndValueDictionary table, NumerialSegment valSpanForColor = null)
        {
            this.TableValue = table;
            if (table == null || table.Count == 0)
            {
                return(null);
            }
            if (ChartSize.Width == 0 || ChartSize.Height == 0)
            {
                return(null);
            }

            this.InputToContentCoordConverter = new PlainCoordConverter(table.KeySize, this.ContentSize, table.LeftDown);

            this.ColorBuilder = new ThreeStepColorBuilder(valSpanForColor ?? table.ValueSpan, Color.Blue, Color.Cyan, Color.Yellow, Color.Red);

            Bitmap   bmp = new Bitmap(ChartSize.Width, ChartSize.Height);;
            Graphics g   = Graphics.FromImage(bmp);

            g.Clear(Color.White);
            this.ChartGraphics = new Geo.Draw.UserChartGraphics(UserToScreenCoordConverter, g);

            DrawColorTable(table);
            DrawContentBoxBorder();
            DrawYLabels();
            DrawXLables();
            DrawLegendColorBar();

            return(bmp);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 二维色彩绘图
        /// </summary>
        /// <param name="table"></param>
        /// <param name="ValSpanForColor"></param>
        public TwoDimColorChartForm(TwoNumeralKeyAndValueDictionary table, NumerialSegment ValSpanForColor = null)
        {
            InitializeComponent();
            this.table = table;

            Draw(table, ValSpanForColor);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="Span"></param>
        /// <param name="ColorFrom"></param>
        /// <param name="ColorTo"></param>
        public TwoStepColorBuilder(NumerialSegment Span, Color ColorFrom, Color ColorMiddle, Color ColorTo)
        {
            MidleValue = Span.Median;
            var segA = new NumerialSegment(Span.Start, MidleValue);
            var segB = new NumerialSegment(MidleValue, Span.End);

            ColorBuilderA = new ColorBuilder(segA, ColorFrom, ColorMiddle);
            ColorBuilderB = new ColorBuilder(segB, ColorMiddle, ColorTo);
        }
Exemplo n.º 4
0
 internal void Draw(TwoNumeralKeyAndValueDictionary table, NumerialSegment ValSpanForColor = null)
 {
     this.TwoNumeralKeyAndValueDictionary = table;
     this.ValSpanForColor = ValSpanForColor;
     this.ColorChartDrawer.Init(this.pictureBox1.Size);
     if (TwoNumeralKeyAndValueDictionary != null)
     {
         this.pictureBox1.Image = this.ColorChartDrawer.Draw(TwoNumeralKeyAndValueDictionary, ValSpanForColor);
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// 获取格网遍历器
        /// </summary>
        /// <returns></returns>
        public GeoGridLooper GetGridLooper()
        {
            NumerialSegment LonSpan = LonSpanControl.GetValue();
            NumerialSegment LatSpan = LatSpanControl.GetValue();
            double          LonStep = this.LonStepControl.Value / 60.0;
            double          LatStep = this.LatStepControl.Value / 60.0;

            bool isLonDesc = this.checkBox_lonOrder.Checked;
            bool isLatDesc = this.checkBox_latOrder.Checked;

            bool isLatFirst = this.checkBox_latFirst.Checked;

            return(new GeoGridLooper(LonSpan, LonStep, LatSpan, LatStep, isLonDesc, isLatDesc, isLatFirst));
        }
Exemplo n.º 6
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="Span"></param>
        /// <param name="ColorFrom"></param>
        /// <param name="ColorTo"></param>
        public ThreeStepColorBuilder(NumerialSegment Span, Color ColorFrom, Color ColorMiddle, Color ColorMiddleB, Color ColorTo)
        {
            var smallSpan = Span.Span / 3.0;

            FistStep   = Span.Start + smallSpan;
            SecondStep = Span.Start + smallSpan * 2;
            var segA = new NumerialSegment(Span.Start, Span.Start + smallSpan);
            var segB = new NumerialSegment(Span.Start + smallSpan, Span.Start + smallSpan * 2);
            var segC = new NumerialSegment(Span.Start + smallSpan * 2, Span.End);

            ColorBuilderA = new ColorBuilder(segA, ColorFrom, ColorMiddle);
            ColorBuilderB = new ColorBuilder(segB, ColorMiddle, ColorMiddleB);
            ColorBuilderC = new ColorBuilder(segC, ColorMiddleB, ColorTo);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="Span"></param>
        /// <param name="ColorFrom"></param>
        /// <param name="ColorTo"></param>
        public ColorBuilder(NumerialSegment Span, Color ColorFrom, Color ColorTo)
        {
            this.ColorFrom = ColorFrom;
            this.ColorTo   = ColorTo;
            int argbFrom = ColorFrom.ToArgb();
            int argbTo   = ColorTo.ToArgb();

            this.Span      = Span;
            this.Alfa      = 255;
            this.RedFrom   = argbFrom >> 16 & 0XFF;
            this.GreenFrom = argbFrom >> 8 & 0XFF;
            this.BlueFrom  = argbFrom & 0XFF;

            int redTo   = argbTo >> 16 & 0XFF;
            int greenTo = argbTo >> 8 & 0XFF;
            int blueTo  = argbTo & 0XFF;

            RedIngredient   = (redTo - RedFrom) / this.Span.Span;
            BlueIngredient  = (blueTo - BlueFrom) / this.Span.Span;
            GreenIngredient = (greenTo - GreenFrom) / this.Span.Span;
        }
Exemplo n.º 8
0
 /// <summary>
 /// 设置值
 /// </summary>
 /// <param name="enabledVal"></param>
 public void SetValue(NumerialSegment enabledVal)
 {
     this.textBox_from.Text = enabledVal.Start + "";
     this.textBox_to.Text   = enabledVal.End + "";
 }
Exemplo n.º 9
0
 /// <summary>
 /// 线性坐标转换器
 /// </summary>
 /// <param name="fromScale"></param>
 /// <param name="toScale"></param>
 public LineCoordConverter(NumerialSegment fromScale, double toScale)
 {
     this.OldStartValue = fromScale.Start;;
     this.Factor        = toScale / fromScale.Span;
 }
Exemplo n.º 10
0
 /// <summary>
 /// 绘图
 /// </summary>
 /// <param name="table"></param>
 /// <param name="ValSpanForColor"></param>
 public void Draw(TwoNumeralKeyAndValueDictionary table, NumerialSegment ValSpanForColor = null)
 {
     this.chartControl1.Draw(table, ValSpanForColor);
 }