ksDistancePntLineForPoint - Получить расстояние между точкой и прямой, заданной двумя точками
guide
api7
guide
api7
ksdistancepntlineforpoint
ksdistancepntlineforpoint.html
*API экспортных функций > Функции работы с графическим документом > Вспомогательные построения > Функции вычисления длин, расстояний, углов и МЦХ *
ksDistancePntLineForPoint - Получить расстояние между точкой и прямой, заданной двумя точками
Пример...
Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntLineForPoint.
Синтаксис:
double ksDistancePntLineForPoint (double x,
double y,
double x1,
double y1,
double x2,
double y2);
Входные параметры:
x, y - координаты точки,
x1, y1 - координаты первой точки на прямой,
x2, y2 - координаты второй точки на прямой.
Возвращаемое значение:
расстояние между точкой и прямой. - в случае успеха,
0 - в случае неудачи.
ksDistancePntLineForPoint - пример использования
reference pObj;
RequestInfo info;
double x, y;
memset (&info, 0, sizeof(info));
info.prompt = "Укажите отрезок";
reference g;
int j = Cursor (&info, &x, &y, 0);
if (j)
{
//найдем объект и убедимся, что это отрезок
if (ExistObj(pObj = FindObj (x, y, 1e6)) && GetObjParam (pObj, 0, 0, 0) == LINESEG_OBJ)
{
info.prompt = "Укажите точку";
//получим точку
j = Cursor (&info, &x ,&y, 0);
if (j)
{
LineSegParam par;
//берем параметры отрезка
GetObjParam (pObj, &par, sizeof (LineSegParam), ALLPARAM);
//получаем расстояние от точки до отрезка
double len = ksDistancePntLineForPoint (x, y, //координаты точки
par.x1, par.y1, //координаты точки на прямой
par.x2, par.y2); //координаты точки на прямой
char buf[TEXT_LENGTH];
sprintf (buf, "расстояние = %f ", len);
Message (buf);
}
}
else
Error("Это не отрезок");
}