intersection_circle_contour_xldintersection_circle_contour_xldIntersectionCircleContourXldIntersectionCircleContourXldintersection_circle_contour_xld (Operator)
intersection_circle_contour_xldintersection_circle_contour_xldIntersectionCircleContourXldIntersectionCircleContourXldintersection_circle_contour_xld
— Calculate the intersection points of a circle or circular arc and an
XLD contour
Signature
Herror intersection_circle_contour_xld(const Hobject Contour, double CircleRow, double CircleColumn, double CircleRadius, double CircleStartPhi, double CircleEndPhi, const char* CirclePointOrder, double* Row, double* Column)
Herror T_intersection_circle_contour_xld(const Hobject Contour, const Htuple CircleRow, const Htuple CircleColumn, const Htuple CircleRadius, const Htuple CircleStartPhi, const Htuple CircleEndPhi, const Htuple CirclePointOrder, Htuple* Row, Htuple* Column)
def intersection_circle_contour_xld(contour: HObject, 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_circle_contour_xld_s(contour: HObject, 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]
Description
intersection_circle_contour_xldintersection_circle_contour_xldIntersectionCircleContourXldIntersectionCircleContourXldintersection_circle_contour_xld
calculates the intersection points
of a circle or circular arc and the XLD ContourContourContourcontourcontour
.
The circle is defined by its center
(CircleRowCircleRowCircleRowcircleRowcircle_row
,CircleColumnCircleColumnCircleColumncircleColumncircle_column
) and its radius
CircleRadiusCircleRadiusCircleRadiuscircleRadiuscircle_radius
. In addition to that, a circular arc is characterized
by the angle of the start point CircleStartPhiCircleStartPhiCircleStartPhicircleStartPhicircle_start_phi
, the angle of the
end point CircleEndPhiCircleEndPhiCircleEndPhicircleEndPhicircle_end_phi
, and the point order
CirclePointOrderCirclePointOrderCirclePointOrdercirclePointOrdercircle_point_order
along the boundary.
If CirclePointOrderCirclePointOrderCirclePointOrdercirclePointOrdercircle_point_order
is set to 'positive'"positive""positive""positive""positive", the circular arc
is defined counterclockwise.
If CirclePointOrderCirclePointOrderCirclePointOrdercirclePointOrdercircle_point_order
is set to 'negative'"negative""negative""negative""negative", the circular arc
is defined clockwise.
The intersection points, if any, are returned in
(RowRowRowrowrow
,ColumnColumnColumncolumncolumn
).
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
ContourContourContourcontourcontour
(input_object) xld_cont →
objectHXLDContHObjectHObjectHobject
XLD contour.
CircleRowCircleRowCircleRowcircleRowcircle_row
(input_control) circle.center.y →
HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the center of the circle or
circular arc.
CircleColumnCircleColumnCircleColumncircleColumncircle_column
(input_control) circle.center.x →
HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the center of the circle or
circular arc.
CircleRadiusCircleRadiusCircleRadiuscircleRadiuscircle_radius
(input_control) circle.radius →
HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Radius of the circle or circular arc.
CircleStartPhiCircleStartPhiCircleStartPhicircleStartPhicircle_start_phi
(input_control) angle.rad →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Angle of the start point of the circle or
circular arc [rad].
Default:
0.0
CircleEndPhiCircleEndPhiCircleEndPhicircleEndPhicircle_end_phi
(input_control) angle.rad →
HTuplefloatHTupleHtuple (real) (double) (double) (double)
Angle of the end point of the circle or
circular arc [rad].
Default:
6.28318
CirclePointOrderCirclePointOrderCirclePointOrdercirclePointOrdercircle_point_order
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Point order along the circle or circular arc.
Default:
'positive'
"positive"
"positive"
"positive"
"positive"
List of values:
'negative'"negative""negative""negative""negative", 'positive'"positive""positive""positive""positive"
RowRowRowrowrow
(output_control) point.y(-array) →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Row coordinates of the intersection points.
ColumnColumnColumncolumncolumn
(output_control) point.x(-array) →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Column coordinates of the intersection points.
Result
If the parameters are valid, the operator
intersection_circle_contour_xldintersection_circle_contour_xldIntersectionCircleContourXldIntersectionCircleContourXldintersection_circle_contour_xld
returns the value 2 (
H_MSG_TRUE)
.
Alternatives
intersection_segment_circleintersection_segment_circleIntersectionSegmentCircleIntersectionSegmentCircleintersection_segment_circle
See also
intersection_line_circleintersection_line_circleIntersectionLineCircleIntersectionLineCircleintersection_line_circle
Module
Foundation