Что нового

Клик с условием, что вокруг нажимаемого места нет определенного цвета

Gosha142

Новичок
Сообщения
7
Репутация
0
Как сделать, чтобы клик происходил не только при условии, что нет ошибки, но и при условии, что вокруг нажимаемого места в радиусе 50 пикселей нет цвета FFFFFF?
Код:
$aCoord_1 = PixelSearch( 0, 0, 1920, 1080, 0x285714, 5 )
If Not @error Then
      MouseClick('left',$aCoord_1[0], $aCoord_1[1], 2)
	  Sleep(1000)
Endif
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Gosha142
Про радиус не скажу. А вот в квадрате +/- 50 пикселей можно так
Код:
Global $iDelta = 50

$aCoord_1 = PixelSearch( 0, 0, 1920, 1080, 0x285714, 5 )
If Not @error Then
  PixelSearch($aCoord_1[0] - $iDelta, $aCoord_1[1] - $iDelta, $aCoord_1[0] + $iDelta, $aCoord_1[1] + $iDelta, 0xFFFFFF)
  If @error Then MouseClick('left', $aCoord_1[0], $aCoord_1[1], 2)
  Sleep(1000)
Endif
 

xaker

Знающий
Сообщения
52
Репутация
16
Чтобы проверять пиксели в определенном радиусе можно в цикле вставить проверку принадлежности точки кругу:

Код:
Global $iX1 = 65	; x координата точки
Global $iY1 = 65	; y координата точки
Global $iX2 = 100	; x координата центра круга
Global $iY2 = 100	; y координата центра круга
Global $iR2 = 50	; радиус круга

If Sqrt(($iX1-$iX2)^2+($iY1-$iY2)^2)<=$iR2 Then ConsoleWrite( "Точка находится в круге" & @CRLF )
 
Верх