KlassenKlassenKlassenKlassen | | | | Operatoren

intersection_llintersection_llIntersectionLlintersection_llIntersectionLlIntersectionLl (Operator)

Name

intersection_llintersection_llIntersectionLlintersection_llIntersectionLlIntersectionLl — Berechnen des Schnittpunktes zwischen zwei Geraden.

Warnung

intersection_llintersection_llIntersectionLlintersection_llIntersectionLlIntersectionLl ist veraltet und wird nur aus Gründen der Rückwärtskompatibilität zur Verfügung gestellt. Neue Applikationen sollten stattdessen den Operator intersection_linesintersection_linesIntersectionLinesintersection_linesIntersectionLinesIntersectionLines aus dem Kapitel Tools / Geometrie verwenden.

Signatur

intersection_ll( : : RowA1, ColumnA1, RowA2, ColumnA2, RowB1, ColumnB1, RowB2, ColumnB2 : Row, Column, IsParallel)

Herror intersection_ll(double RowA1, double ColumnA1, double RowA2, double ColumnA2, double RowB1, double ColumnB1, double RowB2, double ColumnB2, double* Row, double* Column, Hlong* IsParallel)

Herror T_intersection_ll(const Htuple RowA1, const Htuple ColumnA1, const Htuple RowA2, const Htuple ColumnA2, const Htuple RowB1, const Htuple ColumnB1, const Htuple RowB2, const Htuple ColumnB2, Htuple* Row, Htuple* Column, Htuple* IsParallel)

Herror intersection_ll(const HTuple& RowA1, const HTuple& ColumnA1, const HTuple& RowA2, const HTuple& ColumnA2, const HTuple& RowB1, const HTuple& ColumnB1, const HTuple& RowB2, const HTuple& ColumnB2, double* Row, double* Column, Hlong* IsParallel)

Herror intersection_ll(const HTuple& RowA1, const HTuple& ColumnA1, const HTuple& RowA2, const HTuple& ColumnA2, const HTuple& RowB1, const HTuple& ColumnB1, const HTuple& RowB2, const HTuple& ColumnB2, HTuple* Row, HTuple* Column, HTuple* IsParallel)

void IntersectionLl(const HTuple& RowA1, const HTuple& ColumnA1, const HTuple& RowA2, const HTuple& ColumnA2, const HTuple& RowB1, const HTuple& ColumnB1, const HTuple& RowB2, const HTuple& ColumnB2, HTuple* Row, HTuple* Column, HTuple* IsParallel)

static void HMisc::IntersectionLl(const HTuple& RowA1, const HTuple& ColumnA1, const HTuple& RowA2, const HTuple& ColumnA2, const HTuple& RowB1, const HTuple& ColumnB1, const HTuple& RowB2, const HTuple& ColumnB2, HTuple* Row, HTuple* Column, HTuple* IsParallel)

static void HMisc::IntersectionLl(double RowA1, double ColumnA1, double RowA2, double ColumnA2, double RowB1, double ColumnB1, double RowB2, double ColumnB2, double* Row, double* Column, Hlong* IsParallel)

void HOperatorSetX.IntersectionLl(
[in] VARIANT RowA1, [in] VARIANT ColumnA1, [in] VARIANT RowA2, [in] VARIANT ColumnA2, [in] VARIANT RowB1, [in] VARIANT ColumnB1, [in] VARIANT RowB2, [in] VARIANT ColumnB2, [out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* IsParallel)

VARIANT HMiscX.IntersectionLl(
[in] VARIANT RowA1, [in] VARIANT ColumnA1, [in] VARIANT RowA2, [in] VARIANT ColumnA2, [in] VARIANT RowB1, [in] VARIANT ColumnB1, [in] VARIANT RowB2, [in] VARIANT ColumnB2, [out] VARIANT* Column, [out] VARIANT* IsParallel)

static void HOperatorSet.IntersectionLl(HTuple rowA1, HTuple columnA1, HTuple rowA2, HTuple columnA2, HTuple rowB1, HTuple columnB1, HTuple rowB2, HTuple columnB2, out HTuple row, out HTuple column, out HTuple isParallel)

static void HMisc.IntersectionLl(HTuple rowA1, HTuple columnA1, HTuple rowA2, HTuple columnA2, HTuple rowB1, HTuple columnB1, HTuple rowB2, HTuple columnB2, out HTuple row, out HTuple column, out HTuple isParallel)

static void HMisc.IntersectionLl(double rowA1, double columnA1, double rowA2, double columnA2, double rowB1, double columnB1, double rowB2, double columnB2, out double row, out double column, out int isParallel)

Beschreibung

intersection_llintersection_llIntersectionLlintersection_llIntersectionLlIntersectionLl berechnet die Koordinaten des Schnittpunktes zwischen zwei Geraden. Als Eingabe werden je zwei Punkte auf den Geraden erwartet (RowA1RowA1RowA1RowA1RowA1rowA1,ColumnA1ColumnA1ColumnA1ColumnA1ColumnA1columnA1, RowA2RowA2RowA2RowA2RowA2rowA2,ColumnA2ColumnA2ColumnA2ColumnA2ColumnA2columnA2) und (RowB1RowB1RowB1RowB1RowB1rowB1,ColumnB1ColumnB1ColumnB1ColumnB1ColumnB1columnB1, RowB2RowB2RowB2RowB2RowB2rowB2,ColumnB2ColumnB2ColumnB2ColumnB2ColumnB2columnB2). Das Ergebnis wird dann in RowRowRowRowRowrow und ColumnColumnColumnColumnColumncolumn übergeben. Falls die Geraden parallel zueinander sind, sind die Werte von RowRowRowRowRowrow und ColumnColumnColumnColumnColumncolumn undefiniert und IsParallelIsParallelIsParallelIsParallelIsParallelisParallel hat den Wert 1. Andernfalls liefert IsParallelIsParallelIsParallelIsParallelIsParallelisParallel den Wert 0.

Achtung

Falls die Geraden parallel zueinander sind, dann sind die Werte von RowRowRowRowRowrow und ColumnColumnColumnColumnColumncolumn undefiniert.

Parallelisierung

Parameter

RowA1RowA1RowA1RowA1RowA1rowA1 (input_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Zeilenkoordinate des ersten Punktes der ersten Geraden.

ColumnA1ColumnA1ColumnA1ColumnA1ColumnA1columnA1 (input_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Spaltenkoordinate des ersten Punktes der ersten Geraden.

RowA2RowA2RowA2RowA2RowA2rowA2 (input_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Zeilenkoordinate des zweiten Punktes der ersten Geraden.

ColumnA2ColumnA2ColumnA2ColumnA2ColumnA2columnA2 (input_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Spaltenkoordinate des zweiten Punktes der ersten Geraden.

RowB1RowB1RowB1RowB1RowB1rowB1 (input_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Zeilenkoordinate des ersten Punktes der zweiten Geraden.

ColumnB1ColumnB1ColumnB1ColumnB1ColumnB1columnB1 (input_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Spaltenkoordinate es ersten Punktes der zweiten Geraden.

RowB2RowB2RowB2RowB2RowB2rowB2 (input_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Zeilenkoordinate des zweiten Punktes der zweiten Geraden.

ColumnB2ColumnB2ColumnB2ColumnB2ColumnB2columnB2 (input_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Spaltenkoordinate des zweiten Punktes der zweiten Geraden.

RowRowRowRowRowrow (output_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenkoordinate des Schnittpunktes.

ColumnColumnColumnColumnColumncolumn (output_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenkoordinate des Schnittpunktes.

IsParallelIsParallelIsParallelIsParallelIsParallelisParallel (output_control)  number(-array) HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Sind die zwei Geraden parallel?

Beispiel (HDevelop)

dev_set_color ('black')
RowLine1 := 350
ColLine1 := 250
RowLine2 := 300
ColLine2 := 300
Rows := 300
Columns := 50
disp_line (WindowHandle, RowLine1, ColLine1, RowLine2, ColLine2)
n := 0
for Rows := 40 to 200 by 4
  dev_set_color ('red')
  disp_line (WindowHandle, Rows, Columns, Rows+n, Columns+n)
  intersection_ll (Rows, Columns, Rows+n, Columns+n, RowLine1, ColLine1, \
                   RowLine2, ColLine2, Row, Column, IsParallel)
  dev_set_color ('blue')
  disp_line (WindowHandle, Row, Column-2, Row, Column+2)
  disp_line (WindowHandle, Row-2, Column, Row+2, Column)
  n := n+8
endfor

Beispiel (C)

create_tuple(&rowA1, 1);
set_i(rowA1, 8, 0);
create_tuple(&columnA1, 1);
set_i(columnA1, 7, 0);
create_tuple(&rowA2, 1);
set_i(rowA2, 15, 0);
create_tuple(&columnA2, 1);
set_i(columnA2, 11, 0);
create_tuple(&RowB1, 1);
set_i(RowB1, 2, 0);
create_tuple(&ColumnB1, 1);
set_i(ColumnB1, 4, 0);
create_tuple(&RowB2, 1);
set_i(RowB2, 6, 0);
create_tuple(&ColumnB2, 1);
set_i(ColumnB2, 10, 0);
T_intersection_ll(rowA1,columnA1,rowA2,columnA2,RowB1,ColumnB1,RowB2,
                  ColumnB2,&row_i,&column_i,&parallel);
aa_min = get_d(row_i,0);
aa_max = get_d(column_i,0);

Beispiel (HDevelop)

dev_set_color ('black')
RowLine1 := 350
ColLine1 := 250
RowLine2 := 300
ColLine2 := 300
Rows := 300
Columns := 50
disp_line (WindowHandle, RowLine1, ColLine1, RowLine2, ColLine2)
n := 0
for Rows := 40 to 200 by 4
  dev_set_color ('red')
  disp_line (WindowHandle, Rows, Columns, Rows+n, Columns+n)
  intersection_ll (Rows, Columns, Rows+n, Columns+n, RowLine1, ColLine1, \
                   RowLine2, ColLine2, Row, Column, IsParallel)
  dev_set_color ('blue')
  disp_line (WindowHandle, Row, Column-2, Row, Column+2)
  disp_line (WindowHandle, Row-2, Column, Row+2, Column)
  n := n+8
endfor

Beispiel (HDevelop)

dev_set_color ('black')
RowLine1 := 350
ColLine1 := 250
RowLine2 := 300
ColLine2 := 300
Rows := 300
Columns := 50
disp_line (WindowHandle, RowLine1, ColLine1, RowLine2, ColLine2)
n := 0
for Rows := 40 to 200 by 4
  dev_set_color ('red')
  disp_line (WindowHandle, Rows, Columns, Rows+n, Columns+n)
  intersection_ll (Rows, Columns, Rows+n, Columns+n, RowLine1, ColLine1, \
                   RowLine2, ColLine2, Row, Column, IsParallel)
  dev_set_color ('blue')
  disp_line (WindowHandle, Row, Column-2, Row, Column+2)
  disp_line (WindowHandle, Row-2, Column, Row+2, Column)
  n := n+8
endfor

Beispiel (HDevelop)

dev_set_color ('black')
RowLine1 := 350
ColLine1 := 250
RowLine2 := 300
ColLine2 := 300
Rows := 300
Columns := 50
disp_line (WindowHandle, RowLine1, ColLine1, RowLine2, ColLine2)
n := 0
for Rows := 40 to 200 by 4
  dev_set_color ('red')
  disp_line (WindowHandle, Rows, Columns, Rows+n, Columns+n)
  intersection_ll (Rows, Columns, Rows+n, Columns+n, RowLine1, ColLine1, \
                   RowLine2, ColLine2, Row, Column, IsParallel)
  dev_set_color ('blue')
  disp_line (WindowHandle, Row, Column-2, Row, Column+2)
  disp_line (WindowHandle, Row-2, Column, Row+2, Column)
  n := n+8
endfor

Beispiel (HDevelop)

dev_set_color ('black')
RowLine1 := 350
ColLine1 := 250
RowLine2 := 300
ColLine2 := 300
Rows := 300
Columns := 50
disp_line (WindowHandle, RowLine1, ColLine1, RowLine2, ColLine2)
n := 0
for Rows := 40 to 200 by 4
  dev_set_color ('red')
  disp_line (WindowHandle, Rows, Columns, Rows+n, Columns+n)
  intersection_ll (Rows, Columns, Rows+n, Columns+n, RowLine1, ColLine1, \
                   RowLine2, ColLine2, Row, Column, IsParallel)
  dev_set_color ('blue')
  disp_line (WindowHandle, Row, Column-2, Row, Column+2)
  disp_line (WindowHandle, Row-2, Column, Row+2, Column)
  n := n+8
endfor

Ergebnis

intersection_llintersection_llIntersectionLlintersection_llIntersectionLlIntersectionLl liefert den Wert 2 (H_MSG_TRUE).

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren