intersection_segment_lineintersection_segment_lineIntersectionSegmentLineIntersectionSegmentLine (Operator)
Name
intersection_segment_lineintersection_segment_lineIntersectionSegmentLineIntersectionSegmentLine
— Berechnet den Schnittpunkt von einem Geradenabschnitt und einer Geraden
Signatur
Herror intersection_segment_line(double SegmentRow1, double SegmentColumn1, double SegmentRow2, double SegmentColumn2, double LineRow1, double LineColumn1, double LineRow2, double LineColumn2, double* Row, double* Column, Hlong* IsOverlapping)
Herror T_intersection_segment_line(const Htuple SegmentRow1, const Htuple SegmentColumn1, const Htuple SegmentRow2, const Htuple SegmentColumn2, const Htuple LineRow1, const Htuple LineColumn1, const Htuple LineRow2, const Htuple LineColumn2, Htuple* Row, Htuple* Column, Htuple* IsOverlapping)
void IntersectionSegmentLine(const HTuple& SegmentRow1, const HTuple& SegmentColumn1, const HTuple& SegmentRow2, const HTuple& SegmentColumn2, const HTuple& LineRow1, const HTuple& LineColumn1, const HTuple& LineRow2, const HTuple& LineColumn2, HTuple* Row, HTuple* Column, HTuple* IsOverlapping)
static void HOperatorSet.IntersectionSegmentLine(HTuple segmentRow1, HTuple segmentColumn1, HTuple segmentRow2, HTuple segmentColumn2, HTuple lineRow1, HTuple lineColumn1, HTuple lineRow2, HTuple lineColumn2, out HTuple row, out HTuple column, out HTuple isOverlapping)
Beschreibung
intersection_segment_lineintersection_segment_lineIntersectionSegmentLineIntersectionSegmentLineIntersectionSegmentLine
berechnet den Schnittpunkt von einem
Geradenabschnitt und einer Geraden. Der Geradenabschnitt wird über dessen
Endpunkte (SegmentRow1SegmentRow1SegmentRow1SegmentRow1segmentRow1
,SegmentColumn1SegmentColumn1SegmentColumn1SegmentColumn1segmentColumn1
) und
(SegmentRow2SegmentRow2SegmentRow2SegmentRow2segmentRow2
,SegmentColumn2SegmentColumn2SegmentColumn2SegmentColumn2segmentColumn2
), die Gerade über zwei Punkte
(LineRow1LineRow1LineRow1LineRow1lineRow1
,LineColumn1LineColumn1LineColumn1LineColumn1lineColumn1
) und
(LineRow2LineRow2LineRow2LineRow2lineRow2
,LineColumn2LineColumn2LineColumn2LineColumn2lineColumn2
)
definiert. Der Schnittpunkt, falls vorhanden, wird in
(RowRowRowRowrow
,ColumnColumnColumnColumncolumn
) zurückgegeben.
Liegt der Geradenabschnitt auf der Geraden,
liefert der Parameter IsOverlappingIsOverlappingIsOverlappingIsOverlappingisOverlapping
den Wert 1 zurück, ansonsten
wird der Wert 0 zurückgegeben.
In diesem Fall werden die Endpunkte des Geradenabschnitts als Schnittpunkte
in (RowRowRowRowrow
,ColumnColumnColumnColumncolumn
) zurückgegeben.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
SegmentRow1SegmentRow1SegmentRow1SegmentRow1segmentRow1
(input_control) point.y →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenkoordinate des ersten Punktes
des Geradenabschnitts.
SegmentColumn1SegmentColumn1SegmentColumn1SegmentColumn1segmentColumn1
(input_control) point.x →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenkoordinate des ersten Punktes
des Geradenabschnitts.
SegmentRow2SegmentRow2SegmentRow2SegmentRow2segmentRow2
(input_control) point.y →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenkoordinate des zweiten Punktes
des Geradenabschnitts.
SegmentColumn2SegmentColumn2SegmentColumn2SegmentColumn2segmentColumn2
(input_control) point.x →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenkoordinate des zweiten Punktes
des Geradenabschnitts.
LineRow1LineRow1LineRow1LineRow1lineRow1
(input_control) point.y →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenkoordinate des ersten Punktes der Geraden.
LineColumn1LineColumn1LineColumn1LineColumn1lineColumn1
(input_control) point.x →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenkoordinate des ersten Punktes der Geraden.
LineRow2LineRow2LineRow2LineRow2lineRow2
(input_control) point.y →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenkoordinate des zweiten Punktes der Geraden.
LineColumn2LineColumn2LineColumn2LineColumn2lineColumn2
(input_control) point.x →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenkoordinate des zweiten Punktes der Geraden.
RowRowRowRowrow
(output_control) point.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des Schnittpunktes.
ColumnColumnColumnColumncolumn
(output_control) point.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des Schnittpunktes.
IsOverlappingIsOverlappingIsOverlappingIsOverlappingisOverlapping
(output_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Überlappen sich der Geradenabschnitt und die Gerade
in mehr als einem Punkt?
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
intersection_segment_lineintersection_segment_lineIntersectionSegmentLineIntersectionSegmentLineIntersectionSegmentLine
den Wert 2 (H_MSG_TRUE).
Alternativen
intersection_line_contour_xldintersection_line_contour_xldIntersectionLineContourXldIntersectionLineContourXldIntersectionLineContourXld
Siehe auch
intersection_segmentsintersection_segmentsIntersectionSegmentsIntersectionSegmentsIntersectionSegments
,
intersection_linesintersection_linesIntersectionLinesIntersectionLinesIntersectionLines
,
intersection_segment_contour_xldintersection_segment_contour_xldIntersectionSegmentContourXldIntersectionSegmentContourXldIntersectionSegmentContourXld
,
intersection_contours_xldintersection_contours_xldIntersectionContoursXldIntersectionContoursXldIntersectionContoursXld
Modul
Foundation