Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Απ: real time γραφημα σε visual basic 2010

  •  21-06-2010, 18:41

    Απ: real time γραφημα σε visual basic 2010

    Οριστε...


    Και γραμμένο ώστε να μην συμπυκνώνεται αλλά μετά τα 100Χ να κινείται ο άξονας Χ..

    πρέπει να αλλάξω τον τύπο του value γιατί το chart αλλάζει μόνο του τον άξονα.

        Private values As New List(Of Double)
        Private values2 As New List(Of Double)
    
    
        Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    
    
            Dim tempValue As Double
            Dim lightValue As Double
            Dim numberOfPointsInChart As Integer = 100
            Dim numberOfPointsAfterRemoval As Integer = 100
    
            tempValue = Math.Round(phidgetIFK.sensors.Item(0).Value() * 0.2222 - 61.111, 2)
            lightValue = (phidgetIFK.sensors.Item(1).Value())
    
           
    
            values.Add(Math.Round(250 - (tempValue + (250 / 2)), 0))
           
    
            values2.Add(Math.Round(250 - (lightValue * (250 / 1000)), 0))
           
    
    
            If values.Count > 1 Then
                Dim points As New List(Of Point)
                For x As Integer = 0 To values.Count - 1
                    points.Add(New Point(x, values(x)))
                Next
                Chart1.Series("Series1").Points.AddXY(values.Count, tempValue)
    
            End If
    
            If values2.Count > 1 Then
                Dim points As New List(Of Point)
                For s As Integer = 0 To values.Count - 1
                    points.Add(New Point(s, values(s)))
                Next
                Chart2.Series("Series1").Points.AddXY(values2.Count, lightValue)
    
            End If
    
            ' Adjust Y & X axis scale
            Chart1.ResetAutoValues()
            Chart2.ResetAutoValues()
    
            While Chart1.Series(0).Points.Count > numberOfPointsInChart
                ' Remove data points on the left side
                While Chart1.Series(0).Points.Count > numberOfPointsAfterRemoval
                    Chart1.Series(0).Points.RemoveAt(0)
                End While
    
                ' Adjust X axis scale
                Chart1.ChartAreas("Default").AxisX.Minimum = values.Count - numberOfPointsAfterRemoval
                Chart1.ChartAreas("Default").AxisX.Maximum = Chart1.ChartAreas("Default").AxisX.Minimum + numberOfPointsInChart
            End While
    
            While Chart2.Series(0).Points.Count > numberOfPointsInChart
                ' Remove data points on the left side
                While Chart2.Series(0).Points.Count > numberOfPointsAfterRemoval
                    Chart2.Series(0).Points.RemoveAt(0)
                End While
    
                ' Adjust X axis scale
                Chart2.ChartAreas("Default").AxisX.Minimum = values2.Count - numberOfPointsAfterRemoval
                Chart2.ChartAreas("Default").AxisX.Maximum = Chart2.ChartAreas("Default").AxisX.Minimum + numberOfPointsInChart
            End While
    
            ' Invalidate chart
            Chart1.Invalidate()
            Chart2.Invalidate()
        End Sub

Δείτε όλες τις δημοσιεύσεις της Θεματική Ενότητας
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems