intersection_line_circleIntersectionLineCircleIntersectionLineCircleintersection_line_circleintersection_line_circle
Short description
intersection_line_circleIntersectionLineCircleIntersectionLineCircleintersection_line_circleintersection_line_circle — Calculate the intersection points of a line and a circle or circular arc
Signature
intersection_line_circle( point.y LineRow1, point.x LineColumn1, point.y LineRow2, point.x LineColumn2, circle.center.y CircleRow, circle.center.x CircleColumn, circle.radius CircleRadius, angle.rad CircleStartPhi, angle.rad CircleEndPhi, string CirclePointOrder, out point.y Row, out point.x Column )void IntersectionLineCircle( const HTuple& LineRow1, const HTuple& LineColumn1, const HTuple& LineRow2, const HTuple& LineColumn2, const HTuple& CircleRow, const HTuple& CircleColumn, const HTuple& CircleRadius, const HTuple& CircleStartPhi, const HTuple& CircleEndPhi, const HTuple& CirclePointOrder, HTuple* Row, HTuple* Column )static void HOperatorSet.IntersectionLineCircle( HTuple lineRow1, HTuple lineColumn1, HTuple lineRow2, HTuple lineColumn2, HTuple circleRow, HTuple circleColumn, HTuple circleRadius, HTuple circleStartPhi, HTuple circleEndPhi, HTuple circlePointOrder, out HTuple row, out HTuple column )def intersection_line_circle( line_row_1: Union[float, int], line_column_1: Union[float, int], line_row_2: Union[float, int], line_column_2: Union[float, int], circle_row: Union[float, int], circle_column: Union[float, int], circle_radius: Union[float, int], circle_start_phi: float, circle_end_phi: float, circle_point_order: str ) -> Tuple[Sequence[float], Sequence[float]]
def intersection_line_circle_s( line_row_1: Union[float, int], line_column_1: Union[float, int], line_row_2: Union[float, int], line_column_2: Union[float, int], circle_row: Union[float, int], circle_column: Union[float, int], circle_radius: Union[float, int], circle_start_phi: float, circle_end_phi: float, circle_point_order: str ) -> Tuple[float, float]Herror intersection_line_circle( double LineRow1, double LineColumn1, double LineRow2, double LineColumn2, double CircleRow, double CircleColumn, double CircleRadius, double CircleStartPhi, double CircleEndPhi, const char* CirclePointOrder, double* Row, double* Column )
Herror T_intersection_line_circle( const Htuple LineRow1, const Htuple LineColumn1, const Htuple LineRow2, const Htuple LineColumn2, const Htuple CircleRow, const Htuple CircleColumn, const Htuple CircleRadius, const Htuple CircleStartPhi, const Htuple CircleEndPhi, const Htuple CirclePointOrder, Htuple* Row, Htuple* Column )
Description
intersection_line_circleIntersectionLineCircle calculates the intersection points of
a line and a circle or circular arc. The line is defined by the points
(LineRow1lineRow1line_row_1,LineColumn1lineColumn1line_column_1) and
(LineRow2lineRow2line_row_2,LineColumn2lineColumn2line_column_2). The circle is defined
by its center (CircleRowcircleRowcircle_row,CircleColumncircleColumncircle_column) and its radius
CircleRadiuscircleRadiuscircle_radius. In addition to that, a circular arc is characterized
by the angle of the start point CircleStartPhicircleStartPhicircle_start_phi, the angle of the
end point CircleEndPhicircleEndPhicircle_end_phi, and the point order
CirclePointOrdercirclePointOrdercircle_point_order along the boundary.
If CirclePointOrdercirclePointOrdercircle_point_order is set to 'positive'"positive", the circular arc
is defined counterclockwise.
If CirclePointOrdercirclePointOrdercircle_point_order is set to 'negative'"negative", the circular arc
is defined clockwise.
The intersection points, if any, are returned in
(Rowrowrow,Columncolumncolumn).
Execution information
-
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
-
Multithreading scope: global (may be called from any thread).
-
Processed without parallelization.
Parameters
LineRow1lineRow1line_row_1 (input_control) point.y → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)
Row coordinate of the first point of the line.
LineColumn1lineColumn1line_column_1 (input_control) point.x → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)
Column coordinate of the first point of the line.
LineRow2lineRow2line_row_2 (input_control) point.y → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)
Row coordinate of the second point of the line.
LineColumn2lineColumn2line_column_2 (input_control) point.x → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)
Column coordinate of the second point of the line.
CircleRowcircleRowcircle_row (input_control) circle.center.y → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)
Row coordinate of the center of the circle or
circular arc.
CircleColumncircleColumncircle_column (input_control) circle.center.x → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)
Column coordinate of the center of the circle or
circular arc.
CircleRadiuscircleRadiuscircle_radius (input_control) circle.radius → (real / integer)HTuple (double / Hlong)HTuple (double / int / long)Union[float, int]Htuple (double / Hlong)
Radius of the circle or circular arc.
CircleStartPhicircleStartPhicircle_start_phi (input_control) angle.rad → (real)HTuple (double)HTuple (double)floatHtuple (double)
Angle of the start point of the circle or
circular arc [rad].
Default: 0.00.0
CircleEndPhicircleEndPhicircle_end_phi (input_control) angle.rad → (real)HTuple (double)HTuple (double)floatHtuple (double)
Angle of the end point of the circle or
circular arc [rad].
Default: 6.283186.28318
CirclePointOrdercirclePointOrdercircle_point_order (input_control) string → (string)HTuple (HString)HTuple (string)strHtuple (char*)
Point order along the circle or circular arc.
Default: 'positive'"positive"
List of values: 'negative', 'positive'"negative", "positive"
Rowrowrow (output_control) point.y(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)
Row coordinates of the intersection points.
Columncolumncolumn (output_control) point.x(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)
Column coordinates of the intersection points.
Result
If the parameters are valid, the operator intersection_line_circleIntersectionLineCircle
returns the value 2 (H_MSG_TRUE).
Combinations with other operators
Combinations
See also
intersection_segment_circleIntersectionSegmentCircle, intersection_circle_contour_xldIntersectionCircleContourXld
Module
Foundation