Как сохранить простые контурные линии в массиве Visual Basic? - PullRequest
1 голос
/ 11 ноября 2010

HI Как можно хранить простые контурные линии в базовом визуальном массиве?

Пример: если существует массив 5 x 5, ребро = 100 и центр массива = 110. Тогда:

100 100 100 100 100

100 105 105 105 100

100 105 110 105 100

100 105 105 105 100

100 100 100 100 100

Наружное кольцо = 100, 1 ступенька внутреннего кольца = 105, затем центр = 110.

Есть ли обычная рутина для этого? Что произойдет, если массив предназначен для четных чисел (скажем, 6 x 6)? 6 х 6 не имеет центра и нечетных чисел.

Спасибо!

1 Ответ

1 голос
/ 11 ноября 2010

Вот код для создания массива:

Dim a(1 To 5, 1 To 5) As Integer

Private Sub SetRing(lvl As Long, dimSize As Long, value As Long)
    Call SetHValues(lvl, dimSize, value)
    Call SetVValues(lvl, dimSize, value)
End Sub

Private Sub SetHValues(lvl As Long, dimSize As Long, value As Long)
    Dim i As Long, k As Long

    If lvl > (dimSize / 2) + 1 Then Exit Sub

    For i = lvl To dimSize - lvl + 1
        ' horizontal values'
        a(lvl, i) = value
        a(dimSize - lvl + 1, i) = value
    Next
End Sub

Private Sub SetVValues(lvl As Long, dimSize As Long, value As Long)
    Dim i As Long, k As Long

    If lvl > (dimSize / 2) + 1 Then Exit Sub

    For i = lvl To dimSize - lvl + 1
        ' vertical values'
        a(i, lvl) = value
        a(i, dimSize - lvl + 1) = value
    Next
End Sub

И для создания образца массива вы должны вызвать:

Call SetRing(1, 5, 100)
Call SetRing(2, 5, 105)
Call SetRing(3, 5, 110)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...