---
title: "ksIsPointInsideContour - Проверить положение точки относительно кривой"
type: guide
api: [api7]
tags: [guide, api7, ksispointinsidecontour]
sources:
  - ksispointinsidecontour.html
---

*API экспортных функций > Функции работы с графическим документом  > Вспомогательные построения  > Математические функции *


## ksIsPointInsideContour - Проверить положение точки относительно кривой

Пример...
Аналог данной функции при использовании Automation - метод ksDocument2D::ksIsPointInsideContour.
Синтаксис:
```
int ksIsPointInsideContour (reference p, double x, double y, double precision);
Входные параметры:
p    - указатель на контур,
x, y    - координаты точки,
precision    - точность проверки (от 1 до 1E-6).
Возвращаемое значение:
0    - в случае неудачи,
1    - точка вне контура,
2    - точка на контуре,
3    - точка внутри контура.
```


## ksIsPointInsideContour, ksIsCurveClosed - пример использования

reference pObj;
RequestInfo info;
double x, y;
memset(&info, 0, sizeof(info));
info.prompt = "Укажите контур";
int j = Cursor(&info, &x ,&y, 0);
if (j) {
//выбрать контур
if(ExistObj(pObj = FindObj(x, y, 1e6)) && GetObjParam(pObj, 0,0,0) == CONTOUR_OBJ ){
//проверим контур на замкнутость
int close = ksIsCurveClosed(pObj);
char buf[250];
sprintf(buf, " контур %s", close ? "замкнут" : "разомкнут");
Message(buf);
info.prompt = "Укажите точку";
do {
//задать точку
j = Cursor(&info, &x ,&y, 0);
if (j) {
//проверяем расположение точки
int side = ksIsPointInsideContour(pObj, x, y, 0.001);
sprintf(buf, " точка %s", side==1 ? "вне контура" : side==2 ? "на контуре" : "внутри контура");
Message(buf);
}
} while(j);
}
else
Error("Это не контур");
}
