--- 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 ```