This function plots symbols similarly to
what the base graphics function `points`

does when `pch`

is specified.

```
pch3d(x, y = NULL, z = NULL, pch = 1,
bg = material3d("color")[1], cex = 1, radius,
color = "black", lit = FALSE, ...)
```

## Arguments

x, y, z |
The locations at which to plot in a form
suitable for use in `xyz.coords` . |

pch |
A vector of integers or single characters
describing the symbols to plot. |

bg |
The fill color(s) to use for `pch` from 21
to 25. |

cex |
A relative size of the symbol to plot. |

radius |
An absolute size of the symbol to plot
in user coordinates. |

color |
The color(s) to use for symbols. |

lit |
Whether the object responds to lighting or just shows the
displayed color directly. |

... |
Other material properties. |

## Details

The list of symbols encoded by numerical
`pch`

values is given in the `points`

help page.

## Note

This function is not a perfect match to how the `points`

function works due
to limitations in RGL and OpenGL. In
particular:

Symbols with numbers from 1 to 25 are drawn
as 3D sprites (see `sprites3d`

),
so they will resize as the window is zoomed.
Letters and numbers from 32 to 255 (which are
mapped to letters) are drawn using `text3d`

,
so they maintain a fixed size.

A calculation somewhat like the one in `plot3d`

that sets the size
of spheres is used to choose the size of
sprites based on `cex`

and the
current scaling. This will likely need manual
tweaking. Use the `radius`

argument
for a fixed size.

No special handling is done for the case of
`pch = "."`

. Use `points3d`

for
small dots.

As of rgl version 0.100.10, background and foreground
colors can vary from symbol to symbol.

## Value

A vector of object id values is returned invisibly. Separate objects will be drawn
for each different combination of `pch`

value from
0 to 25, `color`

and `bg`

, and another holding all the character
symbols.

## Author

Duncan Murdoch

## See also

## Examples

```
open3d()
i <- 0:25; x <- i %% 5; y <- rep(0, 26); z <- i %/% 5
pch3d(x, y, z, pch = i, bg = "gray", color = rainbow(26))
text3d(x, y, z + 0.3, i)
pch3d(x + 5, y, z, pch = i+65)
text3d(x + 5, y, z + 0.3, i+65)
```