Пример #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);
        }
Пример #2
0
        /// <summary>
        /// 数据字典
        /// </summary>
        /// <param name="isRms"></param>
        /// <returns></returns>
        public TwoNumeralKeyAndValueDictionary GetNumeralKeyDic(bool isRms = false)
        {
            var dic = new TwoNumeralKeyAndValueDictionary();

            foreach (var lat in this.Keys)
            {
                var records = this[lat];
                foreach (var lon in records.Keys)
                {
                    var    val = records[lon];
                    object str = val.Value;

                    if (isRms)
                    {
                        dic[lon, lat] = val.Rms;
                    }
                    else
                    {
                        dic[lon, lat] = val.Value;
                    }
                }
            }
            dic.Init();
            return(dic);
        }
Пример #3
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);
        }
Пример #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);
     }
 }
Пример #5
0
        /// <summary>
        /// 绘制二维颜色图
        /// </summary>
        /// <param name="table"></param>
        public void DrawColorTable(TwoNumeralKeyAndValueDictionary table)
        {
            int cellWidth  = ToInt(InputToContentCoordConverter.XConverter.Factor * table.IntervalA);
            int cellHeight = ToInt(InputToContentCoordConverter.YConverter.Factor * table.IntervalB);

            table.ForEach(new Action <double, double, double>(delegate(double x, double y, double val)
            {
                var xy    = new XY(x, y);
                var scrPt = InputToScreenPt(xy);

                var color = ColorBuilder.Build(val);
                ChartGraphics.DrawColorPoint(scrPt, cellWidth, cellHeight, color, ContentBoxInScreenCoord);
            }));
        }
Пример #6
0
        private void button_multiCalcu_Click(object sender, EventArgs e)
        {
            tableData    = new TwoNumeralKeyAndValueDictionary();
            tableRmsData = new TwoNumeralKeyAndValueDictionary();

            time = new Time(this.namedTimeControl2.GetValue());
            var looper = this.geoGridLoopControl1.GetGridLooper();

            looper.ProgressViewer = this.progressBarComponent1;
            looper.Looping       += looper_Looping;
            looper.Completed     += looper_Completed;
            looper.Init();
            looper.Run();
        }
Пример #7
0
 /// <summary>
 /// 绘图
 /// </summary>
 /// <param name="table"></param>
 /// <param name="ValSpanForColor"></param>
 public void Draw(TwoNumeralKeyAndValueDictionary table, NumerialSegment ValSpanForColor = null)
 {
     this.chartControl1.Draw(table, ValSpanForColor);
 }