Ближайшая к заданным координатам/центру картинка:
#name "Ближайшая к заданным координатам/центру картинка"
// Author: Vint
// Version: 1.0 (14.10.2013)
// цель
$Xtarget = 500
$Ytarget = 500
// цель - центр экрана
//$Xtarget = ($_xmax+1) / 2
//$Ytarget = ($_ymax+1) / 2
GETSCREEN(0,0, $_xmax,$_ymax)
SCANPICTURE($scan, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)
$dist = 10000
$scan_size = ARRSIZE($scan)
FOR($i=0, $i < $scan_size, 2)
$X = $scan[$i]
$Y = $scan[$i+1]
$d_temp = DIST($Xtarget, $Ytarget, $X, $Y)
IF($d_temp < $dist)
$dist = $d_temp
$Xdot_target = $X
$Ydot_target = $Y
END_IF
IF($Y > ($Ytarget + $dist))
$i = $scan_size
END_IF
END_CYC
UNDEFINE($scan)
IF($dist ! 10000)
LOGWRITE ("Ближайшая картинка к заданным координатам X/Y: ", $Xdot_target, " / ", $Ydot_target)
ELSE
LOGWRITE ("Картинка не найдена")
END_IF
HALT
Ближайший к заданным координатам пиксель:
#name "Ближайший к заданным координатам пиксель"
// цель
$Xtarget = 500
$Ytarget = 500
GETSCREEN
SCANPXL($scan, 0,0, $_xmax,$_ymax, 255)
$dist = 10000
$scan_size = ARRSIZE($scan)
FOR($i=0, $i < $scan_size, 2)
$X = $scan[$i]
$Y = $scan[$i+1]
$d_temp = DIST($Xtarget, $Ytarget, $X, $Y)
IF($d_temp < $dist)
$dist = $d_temp
$Xdot_target = $X
$Ydot_target = $Y
END_IF
IF($Y > ($Ytarget + $dist))
$i = $scan_size
END_IF
END_CYC
UNDEFINE($scan)
IF($dist ! 10000)
LOGWRITE ("Ближайший пиксель к заданным координатам X/Y: ", $Xdot_target, " / ", $Ydot_target)
ELSE
LOGWRITE ("Заданный цвет не найден")
END_IF
HALT
А то периодически всплывает.
P.S. 04.09.2018 исправлена опечатка.