All pastes #2066335 Raw Edit

Untitled

public text v1 · immutable
#2066335 ·published 2011-05-21 19:37 UTC
rendered paste body
Private Sub Rysuj(ByVal e As PictureBox, ByVal Arr As Array, ByVal H As Array, ByVal Steps As Integer, ByVal TimeStep As Double, ByVal SimTime As Double, ByVal n As Integer)
        Dim g As Graphics = e.CreateGraphics
        'Dim j As 
        Dim kk As Double
        H = Arr.Clone
        Array.Sort(H)
        Dim MaxArr As Double = H.GetValue(CInt(Steps - 1))
        Dim MinArr As Double = H.GetValue(0)

        If Math.Abs(MinArr) > MaxArr Then
            kk = MinArr
            g.DrawString(CStr(MinArr), Font3, Brushes.Red, xPos + 12, yPos + (yRectSize + 10) * n + 120)
            kk = Math.Abs(MinArr)
            g.DrawLine(Pens.Red, xPos + 8, yPos + (yRectSize + 10) * n + 15 + 120, xPos + 12, yPos + (yRectSize + 10) * n + 15 + 120)
        Else
            kk = Math.Abs(MaxArr)
            g.DrawString(CStr(MaxArr), Font3, Brushes.Red, xPos + 12, yPos + (yRectSize + 10) * n)
            g.DrawLine(Pens.Red, xPos + 8, yPos + (yRectSize + 10) * n + 15, xPos + 12, yPos + (yRectSize + 10) * n + 15)
        End If

        If kk = 0 Then
            kk = 1
        End If

        For k As Integer = 0 To CInt(Steps - 2)
            If Arr(k + 1) > 10000000000 Then
                k = CInt(Steps - 3)
                MsgBox("Overflow")
            End If

            g.DrawLine(Pens.Blue, CInt(xPos + 10 + k * TimeStep * xRectSize / SimTime), CInt(yPos + (yRectSize + 10) * n + yRectSize / 2 - Arr(k) * 120 / kk), CInt(xPos + 10 + (k + 1) * TimeStep * xRectSize / SimTime), CInt(yPos + (yRectSize + 10) * n + yRectSize / 2 - Arr(k + 1) / kk * 120))


        Next k

    End Sub