У меня возникли проблемы с перемещением окна с переменным размером над 2D-массивом в vb.net. моя проблема заключается в том, что когда я беру первый элемент массива на 0,0, то размер окна должен быть меньше, потому что этот элемент должен быть центром скользящего окна. ex: размер аранжировки (40,43) размер окна 5x5 (размер окна равен NxN N = 3 размера побед 3x3), поэтому массив (0,0) с размером выигрыша 5, так что 2 col и 2 строки должны быть отключены, а новый размер окна 3x3. любая помощь будет great.`скользящее окно над 2d массивом в vb.net
Public Function getPIXELSinWINDOW(ByVal Wsize As Integer, ByVal x As Integer, ByVal y As Integer)
Dim tempARRAY As New ArrayList()
Dim Xwidth As Integer = Wsize
Dim Yheight As Integer = Wsize
Dim Xvalue As Integer = x - Wsize/2
Dim Yvalue As Integer = y - Wsize/2
Dim imgHEIGHT As Integer = Me.mysize.Height
Dim imgWIDTH As Integer = Me.mysize.Width
Dim i, j As Integer
While Xvalue < 0
Xvalue += 1
Xwidth -= 1
End While
While Xvalue > imgWIDTH
Xvalue -= 1
Xwidth -= 1
End While
While Xwidth >= imgWIDTH
Xwidth -= 1
End While
While Xvalue + Xwidth > imgWIDTH
Xwidth -= 1
End While
While Yvalue < 0
Yvalue += 1
Yheight -= 1
End While
While Yvalue > imgHEIGHT
Yvalue -= 1
Yheight -= 1
End While
While Yheight >= imgHEIGHT
Yheight -= 1
End While
While Yvalue + Yheight > imgHEIGHT
Yheight -= 1
End While
For i = Xvalue To Xvalue + Xwidth
For j = Yvalue To Yvalue + Yheight
tempARRAY.Add(pixels(j, i))
Next
Next
Return tempARRAY
End Function
УАК пикселей является 2d массив
О, и жаль, что пример находится на C#, но я надеюсь, что вы все равно это поймете! :) – ManiSto
им не уверен, что я читал это право, но что, если im на 20,10 в массиве данных, это даст мне полное окно из 25 значений? – bob
Да, будет. Вы можете создать проект консоли, вставить этот класс и запустить его как основной класс. Таким образом, вы можете играть с разными значениями, чтобы убедиться, что он работает по назначению. Кроме того, я могу добавить версию с большим количеством комментариев к коду, если хотите. – ManiSto