Dzien dobry,
Napotkalem problem z przesowaniem wykresu i nie berdzo wiem jak ruszyc dalej.
Na wykresie rejestruje wartosci z czujnika.w real time. Do testow symuluje otrzymanie nowych wartosci za pomoca timera.
Nowy punkt pojawia sie po prawej stronie I wykres jest przesowany w lewo.
Wszystko dobrze dziala, dopoki nie zaczne kasowac pierwszego punktu w serii, jak seriia osisagnie limit (100 punktow).
Program dziala, dane sa dodawane i kasowane w serii, ale wykres przestaje sie przesuwac ;(. Odswieza sie bo pierwszy punkt znika,
Jak wykasuje za pomoca "buttona1" punkty ponizej limitu (100) to wykres znow sie przesuwa,
Ponizej kod.
private void SimulationTimer1_Tick(object sender, EventArgs e)
{
int actval = 0;
if (true)
{
if (SeriesData1.Points.Count > 100)
{
SeriesData1.Points.RemoveAt(0);
//chart1.Update();
}
prev = (SeriesData1.Points.Count == 0) ? 50: (int)SeriesData1.Points[SeriesData1.Points.Count - 1].YValues[0];
actval = prev + tmpval.Next(-4, 6);
if (actval > 100) { actval = 100; }
if (actval < 0) { actval = 0; }
//prev = actval;
SeriesData1.Points.AddXY(DateTime.Now, actval);
lblViewLength.Text = SeriesData1.Points.Count.ToString();
// shift chart
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(DateTime.Now.AddSeconds(-60).ToOADate(), ChartLength, DateTimeIntervalType.Seconds);
}
}
private void button1_Click(object sender, EventArgs e)
{
SeriesData1.Points.RemoveAt(0);
}