Я рисую элементы на растровом изображении и хочу установить для поля изображения PB_Visualizer размер, необходимый для размещения всех нарисованных элементов.Сначала я устанавливаю для растрового изображения и PB_Visualizer известный размер, а для сброшенных смещенных значений NEG и POS смещения устанавливается значение 0. PB_Visualizer и BB_VIS сверху и слева - это одно и то же местоположение.
PB_Visualizer.Width = 5
PB_Visualizer.Height = 5
BB_Vis = New Bitmap(PB_Visualizer.Width, PB_Visualizer.Height)
Offset_POS_Last = New Point(0, 0) '// Reset
Offset_NEG_Last = New Point(0, 0)
Затем я проверяю все точки PixleVisualizerPoint.и если они превышают ширину и высоту, тогда добавьте сумму, которую они превысили к смещению.Я делаю это как для X, так и для Y и проверяю отрицательно.
If PixleVisualizerPoint(ArrString_Nodes_Array(StringNumbertouse)(Row)).X + int_VisGridSpace > PB_Visualizer.Width Then
bln_Colision = True
Offset_Temp.X = PB_Visualizer.Width - PixleVisualizerPoint(ArrString_Nodes_Array(StringNumbertouse)(Row)).X + int_VisGridSpace
Offset_POS.X = PB_Visualizer.Width - PixleVisualizerPoint(ArrString_Nodes_Array(StringNumbertouse)(Row)).X + int_VisGridSpace
If Offset_POS.X < 0 Then
Offset_POS.X = (Offset_POS.X * -1)
End If
If Offset_POS_Last.X < Offset_POS.X Then
Offset_POS_Last.X = Offset_POS.X
Console.WriteLine("POS X " & Offset_POS_Last.X)
End If
Затем я беру значения POS и NEG с превышением смещения, добавляю их к известным начальным значениям и устанавливаю PB_Visualizer.Размер составляет половину необходимой ширины и необходимой высоты.Offset_POS - это всегда отрицательные числа, где я предполагаю, что все они будут положительными, поскольку они всегда превышают точки за пределами ширины и высоты.Я что-то упустил?
PB_Visualizer.Height = PB_Visualizer.Height+ (Offset_NEG_Last.Y + Offset_POS_Last.Y)
PB_Visualizer.Width = PB_Visualizer.Width+(Offset_NEG_Last.X + Offset_POS_Last.X)