---
title: "Интерфейс математических функций (Интерфейс ksMathematic2D)"
type: interface
api: [api7]
domain: [2d]
tags: [interface, api7, 2d, ksmathematic2d]
sources:
  - ksmathematic2d.html
---

*API интерфейсов. Версия 5 > Графический документ (Интерфейсы - ksDocument2D и IDocument2D) *


## Интерфейс математических функций (Интерфейс ksMathematic2D)

Интерфейс математических функций.
Примечание:
Указатель на интерфейс можно получить при помощи метода KompasObject::GetMathematic2D.
Смотрите также: KompasObject


## ksAngle - Получить угол (в градусах) между осью OX и вектором, заданным двумя точками

Аналог данного метода при использовании API экспортных функций - Angle.
Синтаксис Automation:
```
double ksAngle (double x1,
double y1,
double x2,
double y2);
Входные параметры:
x1, y1    - координаты начальной точки вектора,
x2, y2    - координаты конечной точки вектора.
Возвращаемое значение:
угол в градусах.
```


## ksAtanD - Получить арктангенс аргумента

Аналог данного метода при использовании API экспортных функций - ATanD.
Синтаксис Automation:
```
double ksAtanD (double x);
Входной параметр:
x    - тангенс угла.
Возвращаемое значение:
- угол (в градусах).
```


## ksCalcInertiaProperties - Получить плоские массово-центровочные характеристики кривой или группы кривых

Аналог данного метода при использовании API экспортных функций - ksCalcInertiaProperties.
Синтаксис Automation:
```
long ksCalcInertiaProperties (long p,
LPDISPATCH properties,
short dimension);
Входные параметры:
p    - указатель на кривую или группу кривых,
dimension    - размерность длины.
Выходные параметры:
properties    - указатель на интерфейс параметров для расчета МЦХ ksInertiaParam.
Размерности длины...
Возвращаемое значение:
1    - в случае удачного завершения.
```
Примечание:
Кривые должны быть замкнутыми и представлять собой наружные и внутренние контура.


## ksCalcMassInertiaProperties - Получить объемные массово-центровочные характеристики тел вращения или выдавливания, заданных кривой или группой кривых

Аналог данного метода при использовании API экспортных функций - ksCalcMassInertiaProperties.
Синтаксис Automation:
```
long ksCalcMassInertiaProperties (long p,
LPDISPATCH properties,
double density,
double param);
Входные параметры:
p    - указатель на кривую или группу кривых,
density    - плотность тела (г/куб.мм),
param    - параметр тела (для тела вращения - угол раствора в градусах, для тела выдавливания - толщина).
Выходные параметры:
properties    - указатель на интерфейс параметров для расчета массово-центровочных характеристик ksMassInertiaParam.
Возвращаемое значение:
1    - в случае удачного завершения.
```
Примечания:
1. Кривые должны быть замкнутыми и представлять собой наружные и внутренние контура.
2. Тип тела (тело вращения или выдавливания) устанавливается перед вызовом метода в интерфейсе ksMassInertiaParam.


## ksCosD - Получить косинус аргумента

Аналог данного метода при использовании API экспортных функций - CosD.
Синтаксис Automation:
```
double ksCosD (double x);
Входной параметр:
x    - угол в градусах.
Возвращаемое значение:
- косинус аргумента.
```


## ksCouplingCircleCircle - Получить параметры сопрягающих окружностей определенного радиуса и точки сопряжения для двух окружностей

Аналог данного метода при использовании API экспортных функций - ksCouplingCircleCircle.
Синтаксис Automation:
```
BOOL ksCouplingCircleCircle (double xc1,
double yc1,
double radc1,
double xc2,
double yc2,
double radc2,
double rad,
LPDISPATCH param);
Входные параметры:
xc1, yc1    - координаты центра первой окружности,
rad1    - радиус первой окружности,
xc2, yc2    - координаты центра второй окружности,
Rad    - радиус второй окружности.
Выходной параметр:
param    - указатель на интерфейс массива координат точек сопряжения ksCON.
Возвращаемое значение:
TRUE    - точки касания обнаружены,
FALSE    - точки касания не обнаружены.
```


## ksCouplingLineCircle - Получить параметры сопрягающих окружностей определенного радиуса и точки касания при сопряжении окружности и прямой

Аналог данного метода при использовании API экспортных функций - ksCouplingLineCircle.
Синтаксис Automation:
```
BOOL ksCouplingLineCircle (double xc,
double yc,
double radc,
double x1,
double y1,
double angle1,
double rad,
LPDISPATCH param);
Входные параметры:
xc, yc    - координаты центра окружности,
radc    - радиус окружности,
x1, y1    - координаты точки на прямой,
angle1    - угол наклона прямой,
rad    - радиус окружности сопряжения.
Выходной параметр:
param    - указатель на интерфейс массива координат точек сопряжения ksCON.
Возвращаемое значение:
TRUE    - точки касания обнаружены,
FALSE    - точки касания не обнаружены.
```


## ksCouplingLineLine - Получить параметры окружностей, касательных к двум прямым

Аналог данного метода при использовании API экспортных функций - CouplingLineLine.
Синтаксис Automation:
```
BOOL ksCouplingLineLine (double x1,
double y1,
double angle1,
double x2,
double y2,
double angle2,
double rad,
LPDISPATCH param);
Входные параметры:
x1, y1    - координаты точки на первой прямой,
angle1    - угол наклона первой прямой,
x2, y2    - координаты точки на второй прямой,
angle2    - угол наклона второй прямой.
Выходной параметр:
param    - указатель на интерфейс массива координат точек сопряжения ksCON.
Возвращаемое значение:
TRUE    - точки касания обнаружены,
FALSE    - точки касания не обнаружены.
```


## ksDistanceCurveCurve - Добавить проекцию отображения - развертка

Аналог данного метода при использовании API экспортных функций - ksDistanceCurveCurve.
Синтаксис Automation:
```
long ksDistanceCurveCurve( long p1, long p2, double * distanse, double * t1, double * t2 );
Входные параметры:
p1    - указатель на первую кривую,
p2    - указатель на вторую кривую.
Выходные параметры:
distanse    - расстояние,
t1    - параметр на кривой 1 в точке с минимальным удалением,
t2    - параметр на кривой 2 в точке с минимальным удалением.
Возвращаемое значение:
1    - успешное завершение,
0    - построить касательную нельзя (кривые совпадают или одна кривая вложена в другую),
-1    - первый объект не существует,
-2    - второй объект не существует,
-3    - кривые расположены в разных видах,
-4    - не совпадают СК определения кривых (геометрическая и аннотационная),
-5    - первый объект не является кривой,
-6    - второй объект не является кривой,
-7    - ошибка.
```


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

Аналог данного метода при использовании API экспортных функций - ksDistancePntArc.
Синтаксис Automation:
```
double ksDistancePntArc (double x,
double y,
double xac,
double yac,
double rada,
double fa1,
double fa2,
short directa);
Входные параметры:
x, y    - координаты точки,
xac, yac    - координаты центра дуги,
rada    - радиус дуги,
fa1, fa2    - начальный и конечный углы дуги,
directa    - направление дуги: 1 - против часовой стрелки, -1 – по часовой стрелке.
Возвращаемое значение:
- расстояние между точкой и дугой.
```


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

Аналог данного метода при использовании API экспортных функций - ksDistancePntCircle.
Синтаксис Automation:
```
double ksDistancePntCircle (double x,
double y,
double xc,
double yc,
double rad);
Входные параметры:
x, y    - координаты точки,
xc, yc    - координаты центра окружности,
rad    - радиус окружности.
Возвращаемое значение:
- расстояние между точкой и окружностью.
```


## ksDistancePntLine - Получить расстояние между точкой и прямой, заданной точкой и углом

Аналог данного метода при использовании API экспортных функций - ksDistancePntLine.
Синтаксис Automation:
```
double ksDistancePntLine (double x,
double y,
double x1,
double y1,
double angle);
Входные параметры:
x, y    - координаты точки,
x1, y1    - координаты точки на прямой,
angle    - угол наклона прямой.
Возвращаемое значение:
- расстояние между точкой и прямой.
```


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

Аналог данного метода при использовании API экспортных функций - ksDistancePntLineForPoint.
Синтаксис Automation:
```
double ksDistancePntLineForPoint (double x,
double y,
double x1,
double y1,
double x2,
double y2);
Входные параметры:
x, y    - координаты точки,
x1, y1    - координаты первой точки на прямой,
x2, y2    - координаты второй точки на прямой.
Возвращаемое значение:
- расстояние между точкой и прямой.
```


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

Аналог данного метода при использовании API экспортных функций - ksDistancePntLineSeg.
Синтаксис Automation:
```
double ksDistancePntLineSeg (double x,
double y,
double x1,
double y1,
double x2,
double y2);
Входные параметры:
x, y    - координаты точки,
x1, y1    - координаты начальной точки отрезка,
x2, y2    - координаты конечной точки отрезка.
Возвращаемое значение:
- расстояние между точкой и отрезком.
```


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

Аналог данного метода при использовании API экспортных функций - DistancePntPnt.
Синтаксис Automation:
```
double ksDistancePntPnt (double x1,
double y1,
double x2,
double y2);
Входные параметры:
x1, y1    - координаты первой точки,
x2, y2    - координаты второй точки.
Возвращаемое значение:
- расстояние между двумя точками.
```


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

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


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

Аналог данного метода при использовании API экспортных функций - ksDistanceT1T2OnCurve.
Синтаксис Automation:
```
long ksDistanceT1T2OnCurve (long curve,
double t1,
double t2);
Входные параметры:
curve    - указатель на кривую,
t1    - параметр кривой в точке 1,
t2    - параметр кривой в точке 2.
Возвращаемое значение:
- Расстояние между двумя точками на кривой.
```


## ksEqualPoints - Определить эквивалентность (совпадение) двух точек

Аналог данного метода при использовании API экспортных функций - ksEqualPoints.
Синтаксис Automation:
```
long ksEqualPoints (double x1,
double y1,
double x2,
double y2);
Входные параметры:
x1, y1    - координаты первой точки,
x2, y2    - координаты второй точки.
Возвращаемое значение:
1    - точки совпадают,
0    - точки не совпадают.
```


## ksGetCurveMinMaxParametr - Получить минимальный и максимальный параметр кривой

Аналог данного метода при использовании API экспортных функций - ksGetCurveMinMaxParametr.
Синтаксис Automation:
```
long ksGetCurveMinMaxParametr (long curve,
double *tMin,
double *tMax);
Входные параметры:
curve    - указатель на кривую.
Выходные параметры:
tMin    - минимальный параметр кривой,
tMax    - максимальный параметр кривой.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetCurvePerimeter - Получить периметр кривой

Аналог данного метода при использовании API экспортных функций - ksGetCurvePerimeter.
Синтаксис Automation:
```
double ksGetCurvePerimeter (long curve,
short dimension);
Входные параметры:
curve    - указатель на кривую,
dimension    - размерность длины.
Размерности длины...
Возвращаемое значение:
- периметр кривой.
```


## ksGetCurvePerpendicular - Получить угол нормали к кривой в заданной точке

Аналог данного метода при использовании API экспортных функций - ksGetCurvePerpendicular.
Синтаксис Automation:
```
double ksGetCurvePerpendicular (long curve,
double x,
double y);
Входные параметры:
curve    - указатель на кривую,
x, y    - координаты точки.
Возвращаемое значение:
- угол нормали к кривой в заданной точке (в градусах).
```
Примечание:
Если указанная точка не находится на кривой, она проецируется на кривую.


## ksGetCurvePerpendicularByT - Функция возвращает угол нормали к кривой в заданной точке по параметру кривой

Аналог данного метода при использовании API экспортных функций - ksGetCurvePerpendicularByT.
Синтаксис Automation:
```
double ksGetCurvePerpendicularByT( long curve, double t );
Входные параметры:
p    - указатель на кривую,
t    - параметр кривой.
Выходной параметр:
param    - указатель на интерфейс динамического массива ksDynamicArray углов касательных типа DOUBLE_ARR.
Возвращаемое значение:
- угол нормали.
```


## ksGetCurvePoint - Преобразовать параметр кривой t в координаты вида

Аналог данного метода при использовании API экспортных функций - ksGetCurvePoint.
Синтаксис Automation:
```
long ksGetCurvePoint (long curve,
double t,
double *x,
double *y);
Входные параметры:
curve    - указатель на кривую,
t    - параметр кривой.
Выходные параметры:
kx, ky    - координаты проекции точки на кривую,
Возвращаемое значение:
1    - в случае удачного завершения.
0    - в случае неудачи.
```
Примечание:
См. также ksMathematic2D::ksGetCurvePointProjectionEx.


## ksGetCurvePointProjection - Получить координаты проекции точки на кривую

Аналог данного метода при использовании API экспортных функций - ksGetCurvePointProjection.
Синтаксис Automation:
```
long ksGetCurvePointProjection (long curve,
double x,
double y,
double* kx,
double* ky);
Входные параметры:
curve    - указатель на кривую,
x, y    - координаты проецируемой точки.
Выходные параметры:
kx, ky    - координаты проекции точки на кривую.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. См. также ksMathematic2D::ksGetCurvePointProjectionEx.
2. При выполнении метода ksGetCurvePointProjection проекция на кривую из данной точки может быть не найдена, например, если проекция находится на продолжении кривой. В таком случае возвращаются координаты ближайшей к проекции начальной или конечной точки кривой.
3. В метод ksGetCurvePointProjection нужно передавать координаты в системе координат кривой, то есть в системе координат макроэлемента, которому принадлежит кривая. Возвращаются координаты также в системе координат кривой.


## ksGetCurvePointProjectionEx - Получить координаты проекции точки на кривую

Аналог данного метода при использовании API экспортных функций - ksGetCurvePointProjectionEx.
Синтаксис Automation:
```
long ksGetCurvePointProjectionEx (long curve,
double x, double y,
double *kx, double *ky,
double *t);
Входные параметры:
curve    - указатель на кривую,
x, y    - координаты проецируемой точки.
Выходные параметры:
kx, ky    - координаты проекции точки на кривую,
t    - параметр кривой.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. См. также ksMathematic2D::ksGetCurvePointProjection.
2. При выполнении метода ksGetCurvePointProjectionEx проекция на кривую из данной точки может быть не найдена, например, если проекция находится на продолжении кривой. В таком случае возвращаются координаты ближайшей к проекции начальной или конечной точки кривой.
3. В метод ksGetCurvePointProjectionEx нужно передавать координаты в системе координат кривой, то есть в системе координат макроэлемента, которому принадлежит кривая. Возвращаются координаты также в системе координат кривой.


## ksIntersectArcArc - Получить координаты точек пересечения двух дуг окружностей

Аналог данного метода при использовании API экспортных функций - IntersectArcArc.
Синтаксис Automation:
```
BOOL ksIntersectArcArc (double xac,
double yac,
double rada,
double fa1,
double fa2,
short directa,
double xbc,
double ybc,
double radb,
double fb1,
double fb2,
short directb,
LPDISPATCH param);
Входные параметры:
xac, yac    - координаты центра первой дуги,
rada    - радиус первой дуги,
fa1, fa2    - углы начальной и конечной точек первой дуги,
directa    - направление первой дуги: 1 - против часовой стрелки, -1 – по часовой стрелке,
xbc, ybc    - координаты центра второй дуги,
radb    - радиус второй дуги,
fb1, fb2    - углы начальной и конечной точек второй дуги,
directb    - направление второй дуги: 1 - против часовой стрелки, -1 – по часовой стрелке.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksIntersectArcLin - Получить координаты точек пересечения дуги окружности и прямой

Аналог данного метода при использовании API экспортных функций - IntersectArcLine.
Синтаксис Automation:
```
BOOL ksIntersectArcLin (double xc,
double yc,
double rad,
double f1,
double f2,
long n,
double x,
double y,
double ang,
LPDISPATCH param);
Входные параметры:
xc, yc    - координаты центра окружности,
rad    - радиус окружности,
f1, f2    - углы начальной и конечной точек дуги,
n    - направление дуги: 1 - против часовой стрелки, -1 - по часовой стрелке,
x, y    - координаты точки на прямой,
ang    - угол наклона прямой.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksIntersectCirArc - Получить координаты точек пересечения окружности и дуги

Аналог данного метода при использовании API экспортных функций - IntersectCirArc.
Синтаксис Automation:
```
BOOL ksIntersectCirArc (double xcc,
double ycc,
double radc,
double xac,
double yac,
double rada,
double fa1,
double fa2,
short directa,
LPDISPATCH param);
Входные параметры:
xcс, ycс    - координаты центра окружности,
radc    - радиус окружности,
xac, yac    - координаты центра дуги,
rada    - радиус дуги,
fa1, fa2    - углы начальной и конечной точек дуги,
directa    - направление дуги: 1 - против часовой стрелки, -1 - по часовой стрелке.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksIntersectCirCir - Получить координаты точек пересечения двух окружностей

Аналог данного метода при использовании API экспортных функций - IntersectCirCir.
Синтаксис Automation:
```
BOOL ksIntersectCirCir (double xc1,
double yc1,
double radius1,
double xc2,
double yc2,
double radius2,
LPDISPATCH param);
Входные параметры:
xc1, yc1    - координаты центра первой окружности,
radius1    - радиус первой окружности,
xc2, yc2    - координаты центра второй окружности,
radius2    - радиус второй окружности,
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


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

Аналог данного метода при использовании API экспортных функций - IntersectCirLin.
Синтаксис Automation:
```
BOOL ksIntersectCirLin (double xc,
double yc,
double rad,
double xl,
double yl,
double angle,
LPDISPATCH param);
Входные параметры:
xc, yc    - координаты центра окружности,
rad    - радиус окружности,
x1, y1    - координаты точки на прямой,
angle    - угол наклона прямой.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksIntersectCurvCurv - Получить координаты точек пересечения двух кривых

Аналог данного метода при использовании API экспортных функций - ksIntersectCurvCurv.
Синтаксис Automation:
```
long ksIntersectCurvCurv (long p1,
long p2,
LPDISPATCH param);
Входные параметры:
p1    - указатель на первую кривую,
p2    - указатель на вторую кривую.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
1    - пересечение данных объектов обнаружено,
0    - пересечение не обнаружено (кривые не пересекаются или совпадают),
-1    - первый объект не существует,
-2    - второй объект не существует,
-3    - кривые расположены в разных видах,
-4    - один (или оба) из указанных объектов - не геометрический (не отрезок, не окружность, а, например, линия-выноска),
-5    - первый объект не является кривой,
-6    - второй объект не является кривой,
-7    - ошибка: массив типа POINT_ARR предварительно не создан.
Смотрите также: ksMathPointParam
```


## ksIntersectLinLin - Получить координаты точки пересечения двух прямых

Аналог данного метода при использовании API экспортных функций - IntersectLinLin.
Синтаксис Automation:
```
BOOL ksIntersectLinLin (double x1,
double y1,
double angle1,
double x2,
double y2,
double angle2,
LPDISPATCH param);
Входные параметры:
x1, y1    - координаты точки на первой прямой,
angle1    - угол наклона первой прямой,
x2, y2    - координаты точки на второй прямой,
angle2    - угол наклона второй прямой,
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksIntersectLinSArc - Получить координаты точек пересечения отрезка и дуги

Аналог данного метода при использовании API экспортных функций - IntersectLinSArc.
Синтаксис Automation:
```
BOOL ksIntersectLinSArc (double x1,
double y1,
double x2,
double y2,
double xc,
double yc,
double rad,
double f1,
double f2,
short direct,
LPDISPATCH param);
Входные параметры:
x1, y1    - координаты начальной точки отрезка,
x2, y2    - координаты конечной точки отрезка,
xc, yc    - координаты центра дуги,
rad    - радиус дуги,
f1, f2    - углы начальной и конечной точек дуги,
direct    - направление дуги: 1 - против часовой стрелки, -1 - по часовой стрелке.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksIntersectLinSCir - Получить координаты точек пересечения отрезка и окружности

Аналог данного метода при использовании API экспортных функций - IntersectLinSCir.
Синтаксис Automation:
```
BOOL ksIntersectLinSCir (double x1,
double y1,
double x2,
double y2,
double xc,
double yc,
double rad,
LPDISPATCH param);
Входные параметры:
x1, y1    - координаты начальной точки отрезка,
x2, y2    - координаты конечной точки отрезка,
xc, yc    - координаты центра окружности,
rad    - радиус окружности.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksIntersectLinSLine - Получить координаты точки пересечения отрезка и прямой

Аналог данного метода при использовании API экспортных функций - IntersectLinSLine.
Синтаксис Automation:
```
BOOL ksIntersectLinSLine (double x1,
double y1,
double x2,
double y2,
double x,
double y,
double ang,
LPDISPATCH param);
Входные параметры:
x1, y1    - координаты начальной точки отрезка,
x2, y2    - координаты конечной точки отрезка,
x, y    - координаты точки на прямой,
ang    - угол наклона прямой.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных объектов обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksIntersectLinSLinS - Получить координаты точки пересечения двух отрезков

Аналог данного метода при использовании API экспортных функций - IntersectLinSLinS.
Синтаксис Automation:
```
BOOL ksIntersectLinSLinS (double x11,
double y11,
double x12,
double y12,
double x21,
double y21,
double x22,
double y22,
LPDISPATCH param);
Входные параметры:
x11, y11    - координаты начальной точки первого отрезка,
x12, y12    - координаты конечной точки первого отрезка,
x21, y21    - координаты начальной точки второго отрезка,
x22, y22    - координаты конечной точки второго отрезка.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - пересечение данных отрезков обнаружено,
FALSE    - пересечение не обнаружено.
Смотрите также: ksMathPointParam
```


## ksLinePointTangentCurve - Получить прямую через точку перпендикулярно данной кривой

Аналог данного метода при использовании API экспортных функций - ksLinePointTangentCurve.
Синтаксис Automation:
```
BOOL ksLinePointTangentCurve( long p, double x, double y, LPDISPATCH param );
Входные параметры:
p    - указатель на кривую,
x, y    - координаты точки.
Выходной параметр:
param    - указатель на интерфейс динамического массива ksDynamicArray углов касательных типа DOUBLE_ARR.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```


## ksMovePointOnCurve - Получить координаты точки, находящейся на указанном вдоль кривой расстоянии от указанной точки

Аналог данного метода при использовании API экспортных функций - ksMovePointOnCurve.
Синтаксис Automation:
```
long ksMovePointOnCurve (long curve,
double* x,
double* y,
double len,
long dir);
Входные параметры:
curve    - указатель на кривую,
len    - расстояние, на которое нужно сместить точку,
dir    - направление продвижения точки: 1 - в направлении построения кривой, -1 - в обратном направлении.
Выходные параметры:
x, y    - координаты точки.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Если точка не находится на кривой, она проецируется на кривую.


## ksMovePointOnCurveEx - Переместить точку на расстояние len по кривой

Аналог данного метода при использовании API экспортных функций - ksMovePointOnCurveEx.
Синтаксис Automation:
```
BOOL ksMovePointOnCurveEx( long curve, double* x, double* y, double* t, double len, long dir, long ext );
Входные параметры:
curve    - указатель на кривую,
len    - расстояние, на которое нужно сместить точку,
dir    - направление продвижения точки: 1 - в направлении построения кривой -1 - в обратном направлении,
ext    - учитывать продолжение кривой.
Выходной параметр:
x, y    - координаты точки.
t    - параметр кривой.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
•Если в функцию перелается указатель на параметр кривой t, он используется в качестве начального параметра кривой для сдвига.
•Если указатель не передается, начальный параметр кривой определяется по координатам x, y.


## ksPerpendicular - Получить координаты точки пересечения отрезка и перпендикуляра к нему, проходящего через заданную точку

Аналог данного метода при использовании API экспортных функций - Perpendicular.
Синтаксис Automation:
```
BOOL ksPerpendicular (double x,
double y,
double x1,
double y1,
double x2,
double y2,
double* xp,
double* yp);
Входные параметры:
x, y    - координаты произвольной точки,
x1, y1    - координаты начальной точки отрезка,
x2, y2    - координаты конечной точки отрезка.
Выходные параметры:
xp, yp    - координаты точки пересечения отрезка и перпендикуляра к нему, проходящего через заданную точку.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```


## ksPointsOnCurve - Получить указатель на интерфейс динамического массива точек, равномерно расположенных на кривой

Аналог данного метода при использовании API экспортных функций - ksPointsOnCurve.
Синтаксис Automation:
```
LPDISPATCH ksPointsOnCurve (long curve,
long count);
Входные параметры:
curve    - указатель на кривую,
count    - количество точек.
Возвращаемое значение:
- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Смотрите также: ksMathPointParam
```


## ksPointsOnCurveByStep - Получить массив точек, расположенных на кривой с заданным шагом

Аналог данного метода при использовании API экспортных функций - ksPointsOnCurveByStep.
Синтаксис Automation:
```
LPDISPATCH ksPointsOnCurveByStep (long curve,
double step);
Входные параметры:
curve    - указатель на кривую,
step    - шаг точек вдоль кривой.
Возвращаемое значение:
- указатель на динамический массив математических точек ksDynamicArray типа POINT_ARR.
```


## ksRotate - Повернуть точку относительно центра

Аналог данного метода при использовании API экспортных функций - Rotate.
Синтаксис Automation:
```
BOOL ksRotate (double x,
double y,
double xc,
double yc,
double ang,
double* xr,
double* yr);
Входные параметры:
x, y    - координаты базовой точки,
xс, yс    - координаты центра поворота,
ang    - угол поворота.
Выходные параметры:
xr, yr    - координаты точки после поворота.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```


## ksSinD - Получить синус аргумента

Аналог данного метода при использовании API экспортных функций - SinD.
Синтаксис Automation:
```
double ksSinD (double x);
Входной параметр:
x    - угол в градусах.
Возвращаемое значение:
- синус аргумента.
```


## ksSymmetry - Получить координаты точки, симметричной относительно заданной оси

Аналог данного метода при использовании API экспортных функций - Symmetry.
Синтаксис Automation:
```
BOOL ksSymmetry (double x,
double y,
double x1,
double y1,
double x2,
double y2,
double* xc,
double* yc);
Входные параметры:
x, y    - координаты базовой точки,
x1, y1    - координаты первой точки на оси симметрии,
x2, y2    - координаты второй точки на оси симметрии.
Выходные параметры:
xc, yc    - координаты симметричной точки.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```


## ksTanCircleCircle - Получить координаты точек касания прямых к двум окружностям

Аналог данного метода при использовании API экспортных функций - TanCircleCircle.
Синтаксис Automation:
```
BOOL ksTanCircleCircle (double xc1,
double yc1,
double radius1,
double xc2,
double yc2,
double radius2,
LPDISPATCH param);
Входные параметры:
xc1, yc1    - координаты центра первой окружности,
radius1    - радиус первой окружности,
xc2, yc2    - координаты центра второй окружности,
radius2    - радиус второй окружности.
Выходной параметр:
param    - указатель на интерфейс массива координат точек касания ksTAN.
Возвращаемое значение:
TRUE    - точки касания обнаружены,
FALSE    - точки касания не обнаружены.
```


## ksTanCurvCurv - Получить координаты точек касания прямых к двум кривым

Аналог данного метода при использовании API экспортных функций - ksTanCurvCurv.
Синтаксис Automation:
```
long ksTanCurvCurv (long p1,
long p2,
LPDISPATCH pointArr1,
LPDISPATCH pointArr2);
Входные параметры:
p1    - указатель на первую кривую,
p2    - указатель на вторую кривую.
Выходные параметры:
pointArr1    - динамический массив ksDynamicArray математических точек POINT_ARR на кривой p1,
pointArr2    - динамический массив математических точек ksDynamicArray POINT_ARR на кривой p2.
Возвращаемое значение:
1    - успешное завершение,
0    - построить касательную нельзя (кривые совпадают или одна кривая вложена в другую),
-1    - первый объект не существует,
-2    - второй объект не существует,
-3    - кривые расположены в разных видах,
-4    - не совпадают СК определения кривых (геометрическая и аннотационная),
-5    - первый объект не является кривой,
-6    - второй объект не является кривой,
-7    - ошибка.
```


## ksTanD - Получить тангенс аргумента

Аналог данного метода при использовании API экспортных функций - TanD.
Синтаксис Automation:
```
double ksTanD (double x);
Входной параметр:
x    - угол в градусах.
Возвращаемое значение:
- тангенс аргумента.
```


## ksTanLineAngCircle - Получить точки касания окружности и прямой, проходящей под заданным углом

Аналог данного метода при использовании API экспортных функций - TanLineAngCircle.
Синтаксис Automation:
```
BOOL ksTanLineAngCircle (double xc,
double yc,
double rad,
double ang,
LPDISPATCH param);
Входные параметры:
xc, yc    - координаты центра окружности,
rad    - радиус окружности,
ang    - угол касательной прямой.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - точки касания данных объектов обнаружены,
FALSE    - точки касания не обнаружены.
Смотрите также: ksMathPointParam
```


## ksTanLinePointCircle - Получить точки касания окружности и прямой, проходящей через заданную точку

Аналог данного метода при использовании API экспортных функций - TanLinePointCircle.
Синтаксис Automation:
```
BOOL ksTanLinePointCircle (double x,
double y,
double xc,
double yc,
double rad,
LPDISPATCH param);
Входные параметры:
x, y    - координаты точки,
xc, yc    - координаты центра окружности,
rad    - радиус окружности.
Выходной параметр:
param    - указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:
TRUE    - точки касания данных объектов обнаружены,
FALSE    - точки касания не обнаружены.
Смотрите также: ksMathPointParam
```


## ksTanLinePointCurve - Получить точки касания кривой и прямой, проведенной через заданную точку

Аналог данного метода при использовании API экспортных функций - ksTanLinePointCurve.
Синтаксис Automation:
```
BOOL ksTanLinePointCurve (double x,
double y,
long pCur,
LPDISPATCH param);
Входные параметры:
pCur    - указатель на кривую,
x, y    - координаты точки.
Выходной параметр:
param    - указатель на интерфейс динамического массива ksDynamicArray параметров математической точки типа POINT_ARR.
Возвращаемое значение:
TRUE    - точки касания обнаружены,
FALSE    - точки касания не обнаружены.
Смотрите также: ksMathPointParam
```
