Programmer Guide/Command Reference/EVAL/pgitest: Difference between revisions

From STX Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(9 intermediate revisions by one other user not shown)
Line 5: Line 5:
:<code>pgitest(<var>X</var>, <var>IX</var>, <var>PX<sub>scalar</sub></var>, <var>PY<sub>scalar</sub></var>)</code>
:<code>pgitest(<var>X</var>, <var>IX</var>, <var>PX<sub>scalar</sub></var>, <var>PY<sub>scalar</sub></var>)</code>
:;<var>X</var>:a [[../#polygons|closed point-list]] or a [[../#polygons|polygon-stream]] defining one or more polygons.
:;<var>X</var>:a [[../#polygons|closed point-list]] or a [[../#polygons|polygon-stream]] defining one or more polygons.
:;<var>IX</var>:The index of the polygon of ''X'' to be tested; 0 <= <var>IX</var> < ''N'' (= <code>[[../pgget|pgget]](''X'')</code>)
:;<var>IX</var>:The index of the polygon of ''X'' to be tested; 0 &le; <var>IX</var> < <code>[[../pgget|pgget]](''X'')</code>
:;<var>PX, PY</var>: The point ''P''=<''PX'',''PY''> to be tested.
:;<var>PX, PY</var>: The point ''P''=<''PX'',''PY''> to be tested.
;Result 1: The result ''r'' is a scaler.
;Result 1: The result ''r'' is a scaler.
:{|class="keinrahmen"
::{|class="keinrahmen"
|''r''='''0''' | ... point ''P'' is outside the polygon |-
|''r''='''0''' || ... point ''P'' is outside the polygon ''X<sub>IX</sub>''
|''r''='''1''' | ... point ''P'' is inside the polygon
|-
|''r''='''1''' || ... point ''P'' is inside the polygon ''X<sub>IX</sub>''
|}
|}
:<code>pgitest(<var>X</var>, <var>I</var>, <var>PX<sub>scalar</sub></var>, <var>PY<sub>vector</sub></var>)</code>
:<code>pgitest(<var>X</var>, <var>I</var>, <var>PX<sub>vector</sub></var>, <var>PY<sub>scalar</sub></var>)</code>
:<code>pgitest(<var>X</var>, <var>I</var>, <var>PX<sub>vector</sub></var>, <var>PY<sub>vector</sub></var>)</code>
:;<var>X</var>:A [[../#polygons|closed point-list]] or a [[../#polygons|polygon-stream]] defining one or more polygons.
;Result 1: The number of [[../#polygons|simple polygons]] ''N'' stored in ''X''. If the result is '''0''', ''X'' contains no valid polygons.
----
----
;Usage 2:<code>pgget(<var>X</var>, <var>I</var>, <var>fmt</var>)</code>
;Usage 2:
:;<var>X</var>:A [[../#polygons|closed point-list]] or a [[../#polygons|polygon-stream]] defining one or more polygons.
:<code>pgitest(<var>X</var>, <var>IX</var>, <var>PX<sub>scalar</sub></var>, <var>PY<sub>vector</sub></var>)</code>
:;<var>I</var>:The index of the polygon to be returned; 0 <= <var>I</var> < ''N'' (= <code>pgget(''X'')</code>)
:<code>pgitest(<var>X</var>, <var>IX</var>, <var>PX<sub>vector</sub></var>, <var>PY<sub>scalar</sub></var>)</code>
:;<var>fmt</var>:The format of the result.:
:<code>pgitest(<var>X</var>, <var>IX</var>, <var>PX<sub>vector</sub></var>, <var>PY<sub>vector</sub></var>)</code>
:;<var>PX, PY</var>: The points ''P''[i]=<''PX''[i],''PY''[i]> to be tested. One of these arguments must be a vector.
;Result 2: The result ''r'' is a vector containing the test result for each point ''P''[i].
::{|class="keinrahmen"
::{|class="keinrahmen"
|''fmt''=0 ||... return the ''I''-th polygon of ''X'' as [[../#polygons|polygon-stream]]
|''r''[i]='''0''' || ... point ''P''[i] is outside the polygon ''X<sub>IX</sub>''
|-
|''r''[i]='''1''' || ... point ''P''[i] is inside the polygon ''X<sub>IX</sub>''
|}
----
;Usage 3:
:<code>pgitest(<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>PX1, PY1, PX2, PY2</var>: The points <''PX1'',''PY1''> and <''PX2'',''PY2''> defining the line ''P'' to be tested.
;Result 3: The result ''r'' is a scalar.
::{|class="keinrahmen"
|''r''='''0''' || ... the line ''P'' is outside the polygon ''X<sub>IX</sub>''
|-
|''r''='''1''' || ... the line ''P'' is inside the polygon ''X<sub>IX</sub>''
|-
|''r''='''2''' || ... the line ''P'' intersects the polygon ''X<sub>IX</sub>''
|}
----
;Usage 4:
:<code>pgitest(<var>X</var>, <var>IX</var>, <var>P</var>, <var>IP</var>)</code>
:;<var>P</var>:a [[../#polygons|closed point-list]] or a [[../#polygons|polygon-stream]] defining one or more polygons.
:;<var>IP</var>:The index of the polygon of ''P'' to be tested; 0 &le; <var>IP</var> < <code>[[../pgget|pgget]](''P'')</code>)
;Result 4: The result ''r'' is a scalar.
::{|class="keinrahmen"
|''r''='''0''' || ... the polygon ''P<sub>IP</sub>'' is outside the polygon ''X<sub>IX</sub>''
|-
|''r''='''1''' || ... the polygon ''P<sub>IP</sub>'' is included in the polygon ''X<sub>IX</sub>''
|-
|''r''='''2''' || ... the polygons ''P<sub>IP</sub>'' and ''X<sub>IX</sub>'' are partly overlapping
|-
|-
|''fmt''=1 ||... return the [[../#polygons|polygon-stream]] header (a 8x2 matrix) of the ''I''-th polygon of ''X''
|''r''='''3''' || ... the polygon ''X<sub>IX</sub>'' is included in the polygon ''P<sub>IP</sub>''
|}
|}
;Result 2: The ''I''-th polygon stored in ''X'' in the format selected by ''fmt''.
----
----
;See also: [[../pginit|pginit]], [[../pgitest|pgitest]], [[../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>]]

Latest revision as of 19:10, 21 April 2011

Check the relation (outside, inside, overlap) of a given point, line or simple polygon p to the polygon x.


Usage 1
pgitest(X, IX, PXscalar, PYscalar)
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)
PX, PY
The point P=<PX,PY> to be tested.
Result 1
The result r is a scaler.
r=0 ... point P is outside the polygon XIX
r=1 ... point P is inside the polygon XIX

Usage 2
pgitest(X, IX, PXscalar, PYvector)
pgitest(X, IX, PXvector, PYscalar)
pgitest(X, IX, PXvector, PYvector)
PX, PY
The points P[i]=<PX[i],PY[i]> to be tested. One of these arguments must be a vector.
Result 2
The result r is a vector containing the test result for each point P[i].
r[i]=0 ... point P[i] is outside the polygon XIX
r[i]=1 ... point P[i] is inside the polygon XIX

Usage 3
pgitest(X, IX, PX1scalar, PY1scalar), PX2scalar, PY2scalar)
PX1, PY1, PX2, PY2
The points <PX1,PY1> and <PX2,PY2> defining the line P to be tested.
Result 3
The result r is a scalar.
r=0 ... the line P is outside the polygon XIX
r=1 ... the line P is inside the polygon XIX
r=2 ... the line P intersects the polygon XIX

Usage 4
pgitest(X, IX, P, IP)
P
a closed point-list or a polygon-stream defining one or more polygons.
IP
The index of the polygon of P to be tested; 0 ≤ IP < pgget(P))
Result 4
The result r is a scalar.
r=0 ... the polygon PIP is outside the polygon XIX
r=1 ... the polygon PIP is included in the polygon XIX
r=2 ... the polygons PIP and XIX are partly overlapping
r=3 ... the polygon XIX is included in the polygon PIP

See also
pginit, pgget, pgiline, pgxgrid, pgsplit, pgtrans, pghull

<function list>

Navigation menu

Personal tools