MATLAB Function Reference | ![]() ![]() |
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])
See Also
![]() | surfl | svd | ![]() |