PLW3D(3plplot) | PLplot API | PLW3D(3plplot) |

# NAME¶

**plw3d** - Configure the transformations required for
projecting a 3D surface on a 2D window

# SYNOPSIS¶

**plw3d**(*basex*, *basey*, *height*,
*xmin*, *xmax*, *ymin*, *ymax*, *zmin*,
*zmax*, *alt*, *az*)

# DESCRIPTION¶

Configure the transformations required for projecting a 3D surface on an existing 2D window. Those transformations (see the PLplot documentation) are done to a rectangular cuboid enclosing the 3D surface which has its limits expressed in 3D world coordinates and also normalized 3D coordinates (used for interpreting the altitude and azimuth of the viewing angle). The transformations consist of the linear transform from 3D world coordinates to normalized 3D coordinates, and the 3D rotation of normalized coordinates required to align the pole of the new 3D coordinate system with the viewing direction specified by altitude and azimuth so that x and y of the surface elements in that transformed coordinate system are the projection of the 3D surface with given viewing direction on the 2D window.

The enclosing rectangular cuboid for the surface plot is defined
by *xmin*, *xmax*, *ymin*, *ymax*, *zmin* and
*zmax* in 3D world coordinates. It is mapped into the same rectangular
cuboid with normalized 3D coordinate sizes of *basex* by *basey*
by *height* so that *xmin* maps to -*basex*/2, *xmax*
maps to *basex*/2, *ymin* maps to -*basey*/2, *ymax*
maps to *basey*/2, *zmin* maps to 0 and *zmax* maps to
*height*. The resulting rectangular cuboid in normalized coordinates is
then viewed by an observer at altitude *alt* and azimuth *az*.
This routine must be called before **plbox3**(3plplot) or any of the 3D
surface plotting routines; **plmesh**(3plplot), **plmeshc**(3plplot),
**plot3d**(3plplot), **plot3dc**(3plplot), **plot3dcl**(3plplot),
**plsurf3d**(3plplot), **plsurf3dl**(3plplot) or
**plfill3**(3plplot).

Redacted form: **plw3d(basex, basey, height, xmin, xmax, ymin,
ymax, zmin, zmax, alt, az)**

This function is examples 8, 11, 18, and 21.

# ARGUMENTS¶

*basex*(**PLFLT**(3plplot), input)- The normalized x coordinate size of the rectangular cuboid.
*basey*(**PLFLT**(3plplot), input)- The normalized y coordinate size of the rectangular cuboid.
*height*(**PLFLT**(3plplot), input)- The normalized z coordinate size of the rectangular cuboid.
*xmin*(**PLFLT**(3plplot), input)- The minimum x world coordinate of the rectangular cuboid.
*xmax*(**PLFLT**(3plplot), input)- The maximum x world coordinate of the rectangular cuboid.
*ymin*(**PLFLT**(3plplot), input)- The minimum y world coordinate of the rectangular cuboid.
*ymax*(**PLFLT**(3plplot), input)- The maximum y world coordinate of the rectangular cuboid.
*zmin*(**PLFLT**(3plplot), input)- The minimum z world coordinate of the rectangular cuboid.
*zmax*(**PLFLT**(3plplot), input)- The maximum z world coordinate of the rectangular cuboid.
*alt*(**PLFLT**(3plplot), input)- The viewing altitude in degrees above the xy plane of the rectangular cuboid in normalized coordinates.
*az*(**PLFLT**(3plplot), input)- The viewing azimuth in degrees of the rectangular cuboid in normalized
coordinates. When
*az*=0, the observer is looking face onto the zx plane of the rectangular cuboid in normalized coordinates, and as*az*is increased, the observer moves clockwise around that cuboid when viewed from above the xy plane.

# AUTHORS¶

Many developers (who are credited at http://plplot.org/credits.php) have contributed to PLplot over its long history.

# SEE ALSO¶

PLplot documentation at http://plplot.org/documentation.php.

August, 2021 |