PDA

View Full Version : سوال: نمایش زمان بصورت گراف با کامپوننت ZedGraph



mthreat.info
یک شنبه 25 خرداد 1393, 14:51 عصر
سلام ، خدا قوت
من میخوام یه گراف رو رسم کنم
برای رسم هم از کامپوننت ZedGraph استفاده میکنم حالا سوالم اینه که چطوری این کار رو بکنم که
اولم :
محور x ها رو درست حساب کنه؟
عکس رو نگاه کنید !
http://img.ir/kZPc.jpg
در صورتی که x += 2 هست؟
دوم اینکه چرا بعد از تقریبا 40 نقطه به شدت سرعت افت پیدا میکنه؟
کد نمایش گراف :

list.Add(x, double.Parse(DateTime.Now.Second.ToString()));
myCurve = mypane.AddCurve("", list, panel1.BackColor, SymbolType.None);
graph.AxisChange();


graph.Invalidate();

mthreat.info
یک شنبه 25 خرداد 1393, 20:46 عصر
جوابش شبیه به دیتاگرید بود :D
یعنی اول خونه ها و تب ها و ... رو دستی میدیم بعد بهش عدد میدیم

RollingPointPairList list = new RollingPointPairList(1200);
RollingPointPairList list2 = new RollingPointPairList(1200);

عدد داخل میزان ماندگاری بر روی بردار هست

LineItem curve = myPane.AddCurve( "Voltage", list, Color.Blue, SymbolType.None );
LineItem curve2 = myPane.AddCurve("dgj", list2, Color.Red, SymbolType.None);

حالا شی هامون رو میسازیم

LineItem curve = zedGraphControl1.GraphPane.CurveList[0] as LineItem;
LineItem curve1 = zedGraphControl1.GraphPane.CurveList[1] as LineItem;
IPointListEdit list = curve.Points as IPointListEdit;
IPointListEdit list2 = curve1.Points as IPointListEdit;

حالا شی هایی که دستی ساختیم رو مععرفی میکنیم

list.Add( time, DateTime.Now.Millisecond );
list2.Add(time, DateTime.Now.Second);

دیگه معلوم هستش time هم میشه میزان بردار x
zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();
تمام با 1 میلی ثانیه هم دیگه نه سرعتش پایین میاد نه هنگ میکنه فقط بعضی جا ها رو باید مدیریت کرد مثلا نمایش نقطه ها رو غیر فعال کرد چون جلوی رسم رو میگیره و اشتباه رسم میکنه