intersection_linesintersection_linesIntersectionLinesIntersectionLinesintersection_lines (算子)
名称
intersection_linesintersection_linesIntersectionLinesIntersectionLinesintersection_lines — 计算两条线的交点。
签名
Herror intersection_lines(double Line1Row1, double Line1Column1, double Line1Row2, double Line1Column2, double Line2Row1, double Line2Column1, double Line2Row2, double Line2Column2, double* Row, double* Column, Hlong* IsOverlapping)
Herror T_intersection_lines(const Htuple Line1Row1, const Htuple Line1Column1, const Htuple Line1Row2, const Htuple Line1Column2, const Htuple Line2Row1, const Htuple Line2Column1, const Htuple Line2Row2, const Htuple Line2Column2, Htuple* Row, Htuple* Column, Htuple* IsOverlapping)
void IntersectionLines(const HTuple& Line1Row1, const HTuple& Line1Column1, const HTuple& Line1Row2, const HTuple& Line1Column2, const HTuple& Line2Row1, const HTuple& Line2Column1, const HTuple& Line2Row2, const HTuple& Line2Column2, HTuple* Row, HTuple* Column, HTuple* IsOverlapping)
static void HOperatorSet.IntersectionLines(HTuple line1Row1, HTuple line1Column1, HTuple line1Row2, HTuple line1Column2, HTuple line2Row1, HTuple line2Column1, HTuple line2Row2, HTuple line2Column2, out HTuple row, out HTuple column, out HTuple isOverlapping)
def intersection_lines(line_1row_1: Union[float, int], line_1column_1: Union[float, int], line_1row_2: Union[float, int], line_1column_2: Union[float, int], line_2row_1: Union[float, int], line_2column_1: Union[float, int], line_2row_2: Union[float, int], line_2column_2: Union[float, int]) -> Tuple[float, float, int]
描述
intersection_linesintersection_linesIntersectionLinesIntersectionLinesIntersectionLinesintersection_lines calculates the intersection point of two
lines, which are defined by two of their points
(Line1Row1Line1Row1Line1Row1Line1Row1line1Row1line_1row_1,Line1Column1Line1Column1Line1Column1Line1Column1line1Column1line_1column_1),
(Line1Row2Line1Row2Line1Row2Line1Row2line1Row2line_1row_2,Line1Column2Line1Column2Line1Column2Line1Column2line1Column2line_1column_2), and
(Line2Row1Line2Row1Line2Row1Line2Row1line2Row1line_2row_1,Line2Column1Line2Column1Line2Column1Line2Column1line2Column1line_2column_1),
(Line2Row2Line2Row2Line2Row2Line2Row2line2Row2line_2row_2,Line2Column2Line2Column2Line2Column2Line2Column2line2Column2line_2column_2) respectively.
The intersection point, if it exists, is returned in
(RowRowRowRowrowrow,ColumnColumnColumnColumncolumncolumn).
If both lines are identical, IsOverlappingIsOverlappingIsOverlappingIsOverlappingisOverlappingis_overlapping returns the
value 1, otherwise 0 is returned. In this case no intersection point is
returned in (RowRowRowRowrowrow,ColumnColumnColumnColumncolumncolumn).
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
参数
Line1Row1Line1Row1Line1Row1Line1Row1line1Row1line_1row_1 (输入控制) point.y → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
第一条线第一点的行坐标。
Line1Column1Line1Column1Line1Column1Line1Column1line1Column1line_1column_1 (输入控制) point.x → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
第一条线第一点的列坐标。
Line1Row2Line1Row2Line1Row2Line1Row2line1Row2line_1row_2 (输入控制) point.y → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
第一条线第二点的行坐标。
Line1Column2Line1Column2Line1Column2Line1Column2line1Column2line_1column_2 (输入控制) point.x → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
第一条线第二点的列坐标。
Line2Row1Line2Row1Line2Row1Line2Row1line2Row1line_2row_1 (输入控制) point.y → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
第二条线第一点的行坐标。
Line2Column1Line2Column1Line2Column1Line2Column1line2Column1line_2column_1 (输入控制) point.x → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
第二条线第一点的坐标列。
Line2Row2Line2Row2Line2Row2Line2Row2line2Row2line_2row_2 (输入控制) point.y → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
第二条线的第二点的行坐标。
Line2Column2Line2Column2Line2Column2Line2Column2line2Column2line_2column_2 (输入控制) point.x → HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
第二条线的第二个点的列坐标。
RowRowRowRowrowrow (输出控制) point.y → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Row coordinate of the intersection point.
ColumnColumnColumnColumncolumncolumn (输出控制) point.x → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Column coordinate of the intersection point.
IsOverlappingIsOverlappingIsOverlappingIsOverlappingisOverlappingis_overlapping (输出控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Are both lines identical?
结果
如果参数有效,算子 intersection_linesintersection_linesIntersectionLinesIntersectionLinesIntersectionLinesintersection_lines 返回值 2 ( H_MSG_TRUE )。
另见
intersection_segmentsintersection_segmentsIntersectionSegmentsIntersectionSegmentsIntersectionSegmentsintersection_segments,
intersection_segment_lineintersection_segment_lineIntersectionSegmentLineIntersectionSegmentLineIntersectionSegmentLineintersection_segment_line,
intersection_segment_contour_xldintersection_segment_contour_xldIntersectionSegmentContourXldIntersectionSegmentContourXldIntersectionSegmentContourXldintersection_segment_contour_xld,
intersection_line_contour_xldintersection_line_contour_xldIntersectionLineContourXldIntersectionLineContourXldIntersectionLineContourXldintersection_line_contour_xld,
intersection_contours_xldintersection_contours_xldIntersectionContoursXldIntersectionContoursXldIntersectionContoursXldintersection_contours_xld
模块
基础