FindObj - Найти ближайший к заданной точке объект вида |
Scroll |
Аналог данной функции при использовании Automation - метод ksDocument2D::ksFindObj.
Синтаксис:
reference FindObj (double x,
double y,
double dist);
Входные параметры:
x, y |
- координаты точки, |
dist |
- размер стороны квадрата-"ловушки" с центром в указанной точке. |
Возвращаемое значение:
указатель на найденный объект вида |
- в случае успешного завершения, |
0 |
- в случае неудачи. |
Примечание:
1. Зона поиска - квадрат с указанной стороной и центром.
2. Если значение dist равно MAXDOUBLE, выполняется поиск ближайшего к указанной точке объекта без ограничения зоны поиска.
3. Функцию FindObj можно использовать для поиска объектов внутри макроэлемента.
Для этого макроэлемент должен быть открыт на редактирование функцией ksOpenMacro.
Пример:
ksOpenMacro(obj);
long obj_i=FindObj(x, y, AXIS_FIND_SENS);
if( ExistObj(obj_i) )
LightObj(obj_i, 1);
EndObj();
При этом, если для макроэлемента задана система координат (см. SetMacroPlacement), то координаты в FindObj должны передаваться в системе координат макроэлемента.
Пересчитать координаты в систему координат макроэлемента можно через функцию ksPointIntoMtr. Для этого нужно функцией ksMtr создать матрицу преобразования координат.
Пример:
ksMtr(xp, yp, ang, 1,1); // xp, yp, ang, scaleX, scaleY, - параметры Placement макроэлемента.
ksPointIntoMtr (x, y, &xn, &yn);
EndMtr();
Подразделы:
(отсутствуют)