---
title: "ksDistancePntPntOnCurve - Получить расстояние между двумя точками на кривой"
type: guide
api: [api7]
tags: [guide, api7, ksdistancepntpntoncurve]
sources:
  - ksdistancepntpntoncurve.html
---

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


## ksDistancePntPntOnCurve - Получить расстояние между двумя точками на кривой

Пример...
Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntPntOnCurve.
Синтаксис:
```
double ksDistancePntPntOnCurve (reference curve,
double x1, double y1,
double x2, double y2);
Входные параметры:
curve    - указатель на кривую,
x1, y1    - координаты первой точки,
x2, y2    - координаты второй точки.
Возвращаемое значение:
расстояние между двумя точками на кривой    - в случае успеха,
0    - в случае неудачи.
```
Примечание:
Если заданные точки не находятся на кривой, то определяется расстояние между их проекциями на кривую.


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

double x, y;
if (::Cursor(NULL, &x, &y, NULL)) { // указываем кривую
reference curve = ::FindObj(x, y, 1000); // найти ближайшую кривую
double x1, y1;
if (::ExistObj(curve) && ::Cursor(NULL, &x, &y, NULL) // проверим, существует ли кривая
&& ::Cursor(NULL, &x1, &y1, NULL)) { // и укажем две точки на кривой
double len = ::ksDistancePntPntOnCurve(curve, x, y, x1, y1); // расстояние между точками
char buf[128];
::sprintf(buf, "Расстояние между точками = %g", len);
::Message(buf); // выведем результат
}
}
