Programmer Guide/Command Reference/EVAL/pgiline: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
;Usage: | ;Usage: | ||
:<code>pgiline(<var>X</var>, <var>IX</var>, <var>PX1<sub>scalar</sub></var>, <var>PY1<sub>scalar</sub></var>), <var>PX2<sub>scalar</sub></var>, <var>PY2<sub>scalar</sub></var>)</code> | :<code>pgiline(<var>X</var>, <var>IX</var>, <var>PX1<sub>scalar</sub></var>, <var>PY1<sub>scalar</sub></var>), <var>PX2<sub>scalar</sub></var>, <var>PY2<sub>scalar</sub></var>)</code> | ||
:;<var>X</var>:a [[../#polygons|closed point-list]] or a [[../#polygons|polygon-stream]] defining one or more polygons. | |||
:;<var>PX1, PY1, PX2, PY2</var>: The start point <''PX1'',''PY1''> and the end point <''PX2'',''PY2''> of the line | :;<var>IX</var>:The index of the polygon of ''X'' to be tested; 0 <= <var>IX</var> < <code>[[../pgget|pgget]](''X'')</code>) | ||
;Result 3: The result ''r'' is a | :;<var>PX1, PY1, PX2, PY2</var>: The start point <''PX1'',''PY1''> and the end point <''PX2'',''PY2''> of the line to be tested. | ||
::{ | ;Result 3: The result ''r'' is a Nx3 matrix. Each row of the matrix contains the coordinates of a point of the line and its state. | ||
::{class="einrahmen" | |||
! i !! ''r''[i,0], ''r''[i,1] !! ''r''[i,2] | |||
|- | |- | ||
| | |0 | ||
|start point of the line | |||
|0 if the start point is outside ''X<sub>IX</sub>''<BR>1 if the start point is inside ''X<sub>IX</sub>'' | |||
|- | |- | ||
| | |1 .. N-2 | ||
|intersection point | |||
- | |0 if the line leaves ''X<sub>IX</sub>''<BR>1 if the line enters ''X<sub>IX</sub>'' | ||
|- | |- | ||
| | |N-1 | ||
|end point of the line | |||
|0 if the end point is outside ''X<sub>IX</sub>''<BR>1 if the end point is inside ''X<sub>IX</sub>'' | |||
|} | |} | ||
;See also: [[../pginit|pginit]], [[../pgget|pgget]], [[../pgiline|pgiline]], [[../pgxgrid|pgxgrid]], [[../pgsplit|pgsplit]], [[../pgtrans|pgtrans]], [[../pghull|pghull]] | ;See also: [[../pginit|pginit]], [[../pgget|pgget]], [[../pgiline|pgiline]], [[../pgxgrid|pgxgrid]], [[../pgsplit|pgsplit]], [[../pgtrans|pgtrans]], [[../pghull|pghull]] | ||
[[../#Functions|<function list>]] | [[../#Functions|<function list>]] | ||
Revision as of 08:27, 20 April 2011
Find all intersections of a line, defined by the starting and the ending point, with the polygon x.
- Usage
pgiline(X, IX, PX1scalar, PY1scalar), PX2scalar, PY2scalar)
- X
- a closed point-list or a polygon-stream defining one or more polygons.
- IX
- The index of the polygon of X to be tested; 0 <= IX <
pgget(X)
) - PX1, PY1, PX2, PY2
- The start point <PX1,PY1> and the end point <PX2,PY2> of the line to be tested.
- Result 3
- The result r is a Nx3 matrix. Each row of the matrix contains the coordinates of a point of the line and its state.
- {class="einrahmen"
! i !! r[i,0], r[i,1] !! r[i,2]
|-
|0
|start point of the line
|0 if the start point is outside XIX
1 if the start point is inside XIX
|-
|1 .. N-2
|intersection point
|0 if the line leaves XIX
1 if the line enters XIX
|-
|N-1
|end point of the line
|0 if the end point is outside XIX
1 if the end point is inside XIX
|}