예제 #1
0
 public BaseLine(CanvasParam _cp)
 {
     this.cp     = _cp;
     StartPointX = cp.OriginX;
     StartPointY = cp.OriginY;
     Hlength     = cp.HorizontalLength - cp.ArrowLength - cp.BlankLegend; //减去箭头的长度以及空白长度
     Vlength     = cp.VerticalLength - cp.ArrowLength - cp.BlankLegend;   //减去箭头的长度以及空白长度
 }
예제 #2
0
 }                                //竖向单位以1位单位
 public DataLine(CanvasParam _cp, List <AxisLineParam> listCP, string Attributes) : base(_cp)
 {
     lineWith = 0;
     color    = Color.Red;
     // this.Attributes = Attributes;
     this.Hlp = listCP.Find(t => t.Attributes == "Time");
     this.Vlp = listCP.Find(t => t.Attributes == Attributes);
 }
예제 #3
0
 public LineScale(CanvasParam _cp, AxisLineParam lp) : base(_cp)
 {
     this.lp    = lp;
     ScaleCount = (lp.MaxScale - lp.MinScale) / lp.CellScale;//计算多少数量
 }
예제 #4
0
 public AxisLine(CanvasParam _cp, AxisLineParam lp) : base(_cp)
 {
     this.lp = lp;
 }
예제 #5
0
        private void button1_Click(object sender, EventArgs e)
        {
            List <AxisLineParam> listAxisParam = new List <AxisLineParam>();
            CanvasParam          canvasparam   = new CanvasParam();
            Pen p = new Pen(Color.Blue, 1);
            BufferedGraphics myBuffer = currentContext.Allocate(panel1.CreateGraphics(), panel1.ClientRectangle);
            Graphics         g        = myBuffer.Graphics;

            g.Clear(this.BackColor);
            this.DoubleBuffered          = true;
            canvasparam.ArrowLength      = 6;
            canvasparam.g                = g;
            canvasparam.OriginX          = 43;
            canvasparam.OriginY          = 355;
            canvasparam.VerticalLength   = 350;
            canvasparam.HorizontalLength = 1000;
            canvasparam.BlankLegend      = 30;
            canvasparam.ScaleLength      = 5;
            canvasparam.ScalePadding     = 0;
            AxisLineParam bHParam = new AxisLineParam();

            bHParam.Direction       = LineDirection.Horizontal;
            bHParam.MaxScale        = 100000;
            bHParam.MinScale        = 0;
            bHParam.CellScale       = 10000;
            bHParam.showVirtualLine = ShowVirtualLine.Visible;
            bHParam.Caption         = "时间(分)";
            bHParam.Attributes      = "Time";
            BaseLine bH = new AxisLine(canvasparam, bHParam);

            bH.Draw(p);

            AxisLineParam bVParam = new AxisLineParam();

            bVParam.Direction       = LineDirection.Vertical;
            bVParam.showVirtualLine = ShowVirtualLine.Visible;
            bVParam.MaxScale        = 40;
            bVParam.MinScale        = -40;
            bVParam.CellScale       = 10;
            bVParam.Caption         = "温度/℃";
            bVParam.Attributes      = "Temp";
            BaseLine bV = new AxisLine(canvasparam, bVParam);

            bV.Draw(p);

            AxisLineParam PowerParam = new AxisLineParam();

            PowerParam.Direction       = LineDirection.Vertical;
            PowerParam.showVirtualLine = ShowVirtualLine.Hide;
            PowerParam.lineLocation    = LineLocation.Right;
            PowerParam.MaxScale        = 500;
            PowerParam.MinScale        = 0;
            PowerParam.CellScale       = 100;
            PowerParam.Caption         = "功率";
            PowerParam.Attributes      = "Power";
            PowerParam.Index           = 0;
            BaseLine bPower = new AxisLine(canvasparam, PowerParam);

            bPower.Draw(p);
            listAxisParam.Add(bVParam);
            listAxisParam.Add(bHParam);
            listAxisParam.Add(PowerParam);
            DataLine dl = new DataLine(canvasparam, listAxisParam, "Temp");

            dl.lineWith = 2;
            dl.listData = CreateData(Convert.ToInt32(textBox1.Text));
            dl.Draw(p);
            myBuffer.Render();
            myBuffer.Dispose();
            g.Dispose();
        }