MATLAB Function Reference
surfnorm

Compute and display 3-D surface normals

Syntax

• ```surfnorm(Z)
surfnorm(X,Y,Z)
[Nx,Ny,Nz] = surfnorm(...)
```

Description

The `surfnorm` function computes surface normals for the surface defined by `X`, `Y`, and `Z`. The surface normals are unnormalized and valid at each vertex. Normals are not shown for surface elements that face away from the viewer.

```surfnorm(Z) and surfnorm(X,Y,Z) ``` plot a surface and its surface normals. `Z` is a matrix that defines the z component of the surface. `X` and `Y` are vectors or matrices that define the x and y components of the surface.

```[Nx,Ny,Nz] = surfnorm(...) ``` returns the components of the three-dimensional surface normals for the surface.

Remarks

The direction of the normals is reversed by calling `surfnorm` with transposed arguments:

• ```surfnorm(X'`,`Y'`,`Z')
```

`surfl` uses `surfnorm` to compute surface normals when calculating the reflectance of a surface.

Algorithm

The surface normals are based on a bicubic fit of the data in `X`, `Y`, and `Z`. For each vertex, diagonal vectors are computed and crossed to form the normal.

Examples

Plot the normal vectors for a truncated cone.

• ```[x`,`y`,`z] = cylinder(1:10);
surfnorm(x`,`y`,`z)
axis([-12 12 -12 12 -0.1 1])
```

`surf`, `quiver3`