--- title: "IntersectLinSArc - Получить координаты точек пересечения отрезка и дуги" type: interface api: [api7] tags: [interface, api7, intersectlinsarc] sources: - intersectlinsarc.html --- *API экспортных функций > Функции работы с графическим документом  > Вспомогательные построения  > Функции вычисления пересечений * ## IntersectLinSArc - Получить координаты точек пересечения отрезка и дуги Пример... Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectLinSArc. Синтаксис: ``` void IntersectLinSArc (double x1, double y1, double x2, double y2, double xc, double yc, double rad, double f1, double f2, short direct, int * kp, double xp, double yp); Входные параметры: x1, y1 - координаты начальной точки отрезка, x2, y2 - координаты конечной точки отрезка, xc, yc - координаты центра дуги, rad - радиус дуги, f1, f2 - углы начальной и конечной точек дуги, direct - направление дуги: - 1 - против часовой стрелки, - 1 - по часовой стрелке. Выходные параметры: kp - число пересечений (от 0 до 2), xp, yp - координаты точки пересечения. ``` ## IntersectLinSArc - пример использования void IntersectLinSArc_Example (void) { double x, y; int k; Arc ( 60, 60, 30, 0, 90, 1, 1); LineSeg ( 20, 20, 100, 100, 1); IntersectArcLin (20, 20, 100, 100, 60, 60, 30, 0, 90, 1, &k, x, y); char buf[128]; sprintf(buf, "Количество пересечений = %i", k); ::Message(buf); if (k) Point (x, y, 1); /* точка пересечения */ };