intersection_circlesintersection_circlesIntersectionCirclesIntersectionCirclesintersection_circles (算子)
名称
intersection_circlesintersection_circlesIntersectionCirclesIntersectionCirclesintersection_circles — 计算两个圆或圆弧的交点。
签名
intersection_circles( : : Circle1Row, Circle1Column, Circle1Radius, Circle1StartPhi, Circle1EndPhi, Circle1PointOrder, Circle2Row, Circle2Column, Circle2Radius, Circle2StartPhi, Circle2EndPhi, Circle2PointOrder : Row, Column, IsOverlapping)
Herror intersection_circles(double Circle1Row, double Circle1Column, double Circle1Radius, double Circle1StartPhi, double Circle1EndPhi, const char* Circle1PointOrder, double Circle2Row, double Circle2Column, double Circle2Radius, double Circle2StartPhi, double Circle2EndPhi, const char* Circle2PointOrder, double* Row, double* Column, Hlong* IsOverlapping)
Herror T_intersection_circles(const Htuple Circle1Row, const Htuple Circle1Column, const Htuple Circle1Radius, const Htuple Circle1StartPhi, const Htuple Circle1EndPhi, const Htuple Circle1PointOrder, const Htuple Circle2Row, const Htuple Circle2Column, const Htuple Circle2Radius, const Htuple Circle2StartPhi, const Htuple Circle2EndPhi, const Htuple Circle2PointOrder, Htuple* Row, Htuple* Column, Htuple* IsOverlapping)
void IntersectionCircles(const HTuple& Circle1Row, const HTuple& Circle1Column, const HTuple& Circle1Radius, const HTuple& Circle1StartPhi, const HTuple& Circle1EndPhi, const HTuple& Circle1PointOrder, const HTuple& Circle2Row, const HTuple& Circle2Column, const HTuple& Circle2Radius, const HTuple& Circle2StartPhi, const HTuple& Circle2EndPhi, const HTuple& Circle2PointOrder, HTuple* Row, HTuple* Column, HTuple* IsOverlapping)
static void HOperatorSet.IntersectionCircles(HTuple circle1Row, HTuple circle1Column, HTuple circle1Radius, HTuple circle1StartPhi, HTuple circle1EndPhi, HTuple circle1PointOrder, HTuple circle2Row, HTuple circle2Column, HTuple circle2Radius, HTuple circle2StartPhi, HTuple circle2EndPhi, HTuple circle2PointOrder, out HTuple row, out HTuple column, out HTuple isOverlapping)
def intersection_circles(circle_1row: Union[float, int], circle_1column: Union[float, int], circle_1radius: Union[float, int], circle_1start_phi: float, circle_1end_phi: float, circle_1point_order: str, circle_2row: Union[float, int], circle_2column: Union[float, int], circle_2radius: Union[float, int], circle_2start_phi: float, circle_2end_phi: float, circle_2point_order: str) -> Tuple[Sequence[float], Sequence[float], int]
def intersection_circles_s(circle_1row: Union[float, int], circle_1column: Union[float, int], circle_1radius: Union[float, int], circle_1start_phi: float, circle_1end_phi: float, circle_1point_order: str, circle_2row: Union[float, int], circle_2column: Union[float, int], circle_2radius: Union[float, int], circle_2start_phi: float, circle_2end_phi: float, circle_2point_order: str) -> Tuple[float, float, int]
描述
intersection_circlesintersection_circlesIntersectionCirclesIntersectionCirclesIntersectionCirclesintersection_circles calculates the intersection points of two
circles or circular arcs. The points, if any, are returned in
(RowRowRowRowrowrow,ColumnColumnColumnColumncolumncolumn). The circles are defined by their center
(Circle1RowCircle1RowCircle1RowCircle1Rowcircle1Rowcircle_1row,Circle1ColumnCircle1ColumnCircle1ColumnCircle1Columncircle1Columncircle_1column), and
(Circle2RowCircle2RowCircle2RowCircle2Rowcircle2Rowcircle_2row,Circle2ColumnCircle2ColumnCircle2ColumnCircle2Columncircle2Columncircle_2column) respectively, and their radii
Circle1RadiusCircle1RadiusCircle1RadiusCircle1Radiuscircle1Radiuscircle_1radius, and Circle2RadiusCircle2RadiusCircle2RadiusCircle2Radiuscircle2Radiuscircle_2radius respectively.
In addition to that, a circular arc is characterized by the angle of the
start point (Circle1StartPhiCircle1StartPhiCircle1StartPhiCircle1StartPhicircle1StartPhicircle_1start_phi,Circle2StartPhiCircle2StartPhiCircle2StartPhiCircle2StartPhicircle2StartPhicircle_2start_phi),
the angle of the end point (Circle1EndPhiCircle1EndPhiCircle1EndPhiCircle1EndPhicircle1EndPhicircle_1end_phi,Circle2EndPhiCircle2EndPhiCircle2EndPhiCircle2EndPhicircle2EndPhicircle_2end_phi),
and the point order (Circle1PointOrderCircle1PointOrderCircle1PointOrderCircle1PointOrdercircle1PointOrdercircle_1point_order,Circle2PointOrderCircle2PointOrderCircle2PointOrderCircle2PointOrdercircle2PointOrdercircle_2point_order)
along the boundary.
If Circle1PointOrderCircle1PointOrderCircle1PointOrderCircle1PointOrdercircle1PointOrdercircle_1point_order is set to 'positive'"positive""positive""positive""positive""positive", the circular arc
is defined counterclockwise.
If Circle1PointOrderCircle1PointOrderCircle1PointOrderCircle1PointOrdercircle1PointOrdercircle_1point_order is set to 'negative'"negative""negative""negative""negative""negative", the circular arc
is defined clockwise.
The same applies for Circle2PointOrderCircle2PointOrderCircle2PointOrderCircle2PointOrdercircle2PointOrdercircle_2point_order.
If both circles or circular arcs have a part in common
IsOverlappingIsOverlappingIsOverlappingIsOverlappingisOverlappingis_overlapping returns the value 1, otherwise 0 is returned.
In this case the endpoints of the mutual arc are returned in
(RowRowRowRowrowrow,ColumnColumnColumnColumncolumncolumn).
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
参数
Circle1RowCircle1RowCircle1RowCircle1Rowcircle1Rowcircle_1row (输入控制) circle.center.y → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the center of the first circle or
circular arc.
Circle1ColumnCircle1ColumnCircle1ColumnCircle1Columncircle1Columncircle_1column (输入控制) circle.center.x → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the center of the first circle or
circular arc.
Circle1RadiusCircle1RadiusCircle1RadiusCircle1Radiuscircle1Radiuscircle_1radius (输入控制) circle.radius → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Radius of the first circle or circular arc.
Circle1StartPhiCircle1StartPhiCircle1StartPhiCircle1StartPhicircle1StartPhicircle_1start_phi (输入控制) angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Angle of the start point of the first circle or
circular arc [rad].
默认值:
0.0
Circle1EndPhiCircle1EndPhiCircle1EndPhiCircle1EndPhicircle1EndPhicircle_1end_phi (输入控制) angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Angle of the end point of the first circle or
circular arc [rad].
默认值:
6.28318
Circle1PointOrderCircle1PointOrderCircle1PointOrderCircle1PointOrdercircle1PointOrdercircle_1point_order (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Point order along the first circle or circular arc.
默认值:
'positive'
"positive"
"positive"
"positive"
"positive"
"positive"
值列表:
'negative'"negative""negative""negative""negative""negative", 'positive'"positive""positive""positive""positive""positive"
Circle2RowCircle2RowCircle2RowCircle2Rowcircle2Rowcircle_2row (输入控制) circle.center.y → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the center of the second circle or
circular arc.
Circle2ColumnCircle2ColumnCircle2ColumnCircle2Columncircle2Columncircle_2column (输入控制) circle.center.x → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the center of the second circle or
circular arc.
Circle2RadiusCircle2RadiusCircle2RadiusCircle2Radiuscircle2Radiuscircle_2radius (输入控制) circle.radius → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Radius of the second circle or circular arc.
Circle2StartPhiCircle2StartPhiCircle2StartPhiCircle2StartPhicircle2StartPhicircle_2start_phi (输入控制) angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Angle of the start point of the second circle or
circular arc [rad].
默认值:
0.0
Circle2EndPhiCircle2EndPhiCircle2EndPhiCircle2EndPhicircle2EndPhicircle_2end_phi (输入控制) angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Angle of the end point of the second circle or
circular arc [rad].
默认值:
6.28318
Circle2PointOrderCircle2PointOrderCircle2PointOrderCircle2PointOrdercircle2PointOrdercircle_2point_order (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Point order along the second circle or circular arc.
默认值:
'positive'
"positive"
"positive"
"positive"
"positive"
"positive"
值列表:
'negative'"negative""negative""negative""negative""negative", 'positive'"positive""positive""positive""positive""positive"
RowRowRowRowrowrow (输出控制) point.y(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Row coordinates of the intersection points.
ColumnColumnColumnColumncolumncolumn (输出控制) point.x(-array) → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Column coordinates of the intersection points.
IsOverlappingIsOverlappingIsOverlappingIsOverlappingisOverlappingis_overlapping (输出控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Do both circles or circular arcs have a part in common?
结果
如果参数有效,算子 intersection_circlesintersection_circlesIntersectionCirclesIntersectionCirclesIntersectionCirclesintersection_circles 返回值 2 ( H_MSG_TRUE )。
模块
基础