--- title: "IntersectArcArc - Получить координаты точек пересечения двух дуг окружностей" type: interface api: [api7] tags: [interface, api7, intersectarcarc] sources: - intersectarcarc.html --- *API экспортных функций > Функции работы с графическим документом  > Вспомогательные построения  > Функции вычисления пересечений * ## IntersectArcArc - Получить координаты точек пересечения двух дуг окружностей Пример... Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectArcArc. Синтаксис: ``` void IntersectArcArc (double xac, double yac, double rada, double fa1, double fa2, short directa, double xbc, double ybc, double radb, double fb1, double fb2, short directb, int * kp, double xp[], double yp[]); Входные параметры: xac, yac - координаты центра первой дуги, rada - радиус первой дуги, fa1, fa2 - углы начальной и конечной точек первой дуги, directa - направление первой дуги: 1 - против часовой стрелки, -1 – по часовой стрелке, xbc, ybc - координаты центра второй дуги, radb - радиус второй дуги, fb1, fb2 - углы начальной и конечной точек второй дуги, directb - направление второй дуги: 1 - против часовой стрелки, -1 – по часовой стрелке. Выходные параметры: kp - число пересечений (от 0 до 2), xp[], yp[] - массивы координат точки пересечения. ``` ## IntersectArcArc - пример использования void IntersectArcArc_Example (void) { double x[2], y[2]; int k, i; Arc ( 60, 60, 30, -90, 90, 1, 1); Arc ( 75, 60, 30, -90, 90, -1, 1); IntersectArcArc (60, 60, 30, -90, 90, 1, 75, 60, 30, -90, 90, -1, &k, x, y); char buf[128]; sprintf(buf, "Количество пересечений = %i", k); ::Message(buf); if (k) for (I=0; i