У меня проблемы с перемещением окна переменного размера по 2D-массиву в vb.net. Моя проблема заключается в том, что когда я беру первый элемент массива равным 0,0, какой бы ни был размер окна, он должен быть меньше, потому что рассматриваемый элемент должен быть центром скользящего окна. пример: размер массива (40,43) размер окна 5x5 (размер окна NxN N = 3 размера выигрыша 3x3), поэтому массив (0,0) с размером выигрыша 5, поэтому необходимо выстроить 2 столбца и 2 строки, а новый размер окна 3х3. любая помощь будет отличной.
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 массив