.. role:: blue :class: blue Определение точек скрещения кривых =================================== .. _Determining_Curve_Crossing_Points: .. версия ядра: 118061 Функция .. code-block:: cpp ptrdiff_t CurveCurveCrossing( const MbCurve3D & curve1, const MbCurve3D & curve2, SArray & result1, SArray & result2, double epsilon = Math::metricRegion ); находит точки скрещения двух пространственных кривых и возвращает параметры этих точек на каждой кривой. Точками скрещения называются такие точки кривых, для которых отрезок, соединяющий эти точки, перпендикулярен касательным к обеим кривым. Параметры функции: - **curve1** – первая кривая; - **curve2** – вторая кривая; - **result1** – параметры точек скрещения на первой кривой; - **result2** – параметры точек скрещения на второй кривой; - **epsilon** – точность поиска решения. Возвращаемое значение – количество найденных скрещений. Параметры найденных точек скрещения для первой кривой записываются в массив **result1**, а для второй кривой – в массив **result2**. В частном случае геометрического пересечения кривых отрезок между точками скрещения вырождается в нулевую длину, и точки скрещения становятся точками пересечения. Помимо собственных скрещений, функция :blue:`CurveCurveCrossing`\() возвращает такие точки скрещения кривых, для которых отрезок, соединяющий эти точки, перпендикулярен касательным к кривым в этих точках. Например, на рисунке функция :blue:`CurveCurveCrossing`\() возвращает четыре пары параметров скрещения: на окружности **curve1** им соответствуют точки p1, p2, p3, p4, а на отрезке **curve2** точки r1, r2, r3, r4: .. figure:: /MODELER/AUXILIARY_METHODS/pictures/9.14.1.png :width: 15cm :align: center