`plpoly3`: Draw a polygon in 3 space
Prev | Chapter 17. The Common API for PLplot | Next

#### `plpoly3`: Draw a polygon in 3 space

`plpoly3 (` | n ,
| x ,
| y ,
| z ,
| draw ,
| ifcc `)`;

Draws a polygon in 3 space defined by ``n`` points in ``x`` , ``y`` , and ``z`` . Setup like `plline3`, but differs from that function in that `plpoly3` attempts to determine if the polygon is viewable depending on the order of the points within the vector and the value of ``ifcc``. If the back of polygon is facing the viewer, then it isn't drawn. If this isn't what you want, then use `plline3` instead.

The points are assumed to be in a plane, and the directionality of the plane is determined from the first three points. Additional points do not have to lie on the plane defined by the first three, but if they do not, then the determination of visibility obviously can't be 100% accurate... So if you're 3 space polygons are too far from planar, consider breaking them into smaller polygons. “3 points define a plane” :-).

Bugs: If one of the first two segments is of zero length, or if they are co-linear, the calculation of visibility has a 50/50 chance of being correct. Avoid such situations :-). See `x18c.c` for an example of this problem. (Search for “20.1”).

`n` (``PLINT``, input)

  Number of points defining line.

`x` (``PLFLT_VECTOR``, input)

  A vector containing `n` x coordinates of points.

`y` (``PLFLT_VECTOR``, input)

  A vector containing `n` y coordinates of points.

`z` (``PLFLT_VECTOR``, input)

  A vector containing `n` z coordinates of points.

`draw` (``PLBOOL_VECTOR``, input)

  A vector containing `n-1` Boolean values which control drawing the segments of the polygon. If ``draw[i]`` is true, then the polygon segment from index ``[i]`` to ``[i+1]`` is drawn, otherwise, not.

`ifcc` (``PLBOOL``, input)

  If ``ifcc`` is true the directionality of the polygon is determined by assuming the points are laid out in a counter-clockwise order. Otherwise, the directionality of the polygon is determined by assuming the points are laid out in a clockwise order.

Redacted form: `plpoly3(x, y, z, code)`

This function is used in example 18.

Prev | Up | Next
`plpoin3`: Plot a glyph at the specified 3D points | Home | `plprec`: Set precision in numeric labels