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; //减去箭头的长度以及空白长度 }
} //竖向单位以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); }
public LineScale(CanvasParam _cp, AxisLineParam lp) : base(_cp) { this.lp = lp; ScaleCount = (lp.MaxScale - lp.MinScale) / lp.CellScale;//计算多少数量 }
public AxisLine(CanvasParam _cp, AxisLineParam lp) : base(_cp) { this.lp = lp; }
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(); }