FindColorSpiralTolerance

From SCAR Divi Manual
Jump to: navigation, search

Definition

function FindColorSpiralTolerance(var X, Y: Integer; const Color, XS, YS, XE, YE, Tol: Integer): Boolean;

Availability

SCAR Divi 3.00 > Current

  • Before SCAR Divi 3.25, the search would not start in the middle of the search area if X or Y are smaller than 0.
  • Before SCAR Divi 3.33, the search only start in the middle of the search area if X or Y are smaller than 0.

Description

This function searches for a given color specified by Color within a tolerance range specified by Tol using a spiral pattern. The search area is given as a set of upper-left (XS, YS) and lower-right (XE, YE) coordinates which are specified relative to the selected client window. If the given search area is invalid (XS > XE or YS > YE), an exception is thrown.

The search will start at the coordinates given by (X, Y), if these coordinates are outside of the bounds of the search area, the function will start searching at the center of the search area.

The function returns false if the color was not found, if it was it returns true and the coordinates of the found color in (X, Y). The search will stop after the first instance of the color was found.

The active tolerance algorithm can be changed using the ColorToleranceSpeed function.

Example

var
  w, h: Integer;
  x, y: Integer;

begin
  GetClientDimensions(w, h);
  x := -1; y := -1;
  if FindColorSpiralTolerance(x, y, 0, 0, 0, w - 1, h - 1, 20) then
    WriteLn('Found color at ' + IntToStr(x) + ', ' + IntToStr(y));
end.

See Also