# EstimatedPointNormals

EstimatedPointNormals[{p1,p2,}]

estimates normal vectors for the points p1,p2,.

EstimatedPointNormals[mreg]

estimates normals vectors for the vertices of the mesh region mreg.

# Details and Options • EstimatedPointNormals is typically used to find hypersurface orientations from a set of points.
• • EstimatedPointNormals[{p1,p2,}] gives a list {n1,n2,} where ni is the unit normal vector of pi.
• The pi in EstimatedPointNormals[{p1,p2,}] can be lists of coordinates or explicit Point objects.
• A Method option can also be given. Possible Method settings include:
•  "PlaneFitting" plane fitting using nearest neighbors "FaceWeighted" face-weighted normals

# Examples

open allclose all

## Basic Examples(3)

Estimated normals of circle points:

Estimated normals of sphere points:

Generate a point cloud by randomly sampling a surface:

Visualize the estimated normals with lighting:

## Scope(2)

### Basic Uses(1)

Estimated normals of points in 1D:

In 2D:

In 3D:

In D:

### Specifications(1)

EstimatedPointNormals takes a set of points:

Use a Point list:

## Applications(3)

### Basic Applications(1)

Given a sufficiently dense sampling of a smooth surface, one can assume that samples near each other in space also lie near each other on the surface:

The local surface around each point is therefore sampled by the nearest neighborhood of the point:

This local surface can be approximated by a plane fitted to its sample points:

The normals of these fitted planes can be used as an estimate of the normals of their corresponding points:

### Point Cloud Rendering(1)

Render a point cloud using the estimated normals for lighting calculations:

Compare the rendered point cloud to the ground truth model:

### Surface Reconstruction(1)

Estimate normals to be used during surface reconstruction:

## Properties & Relations(2)

EstimatedPointNormals can generate normals for use in surface reconstruction:

Normal vectors can be calculated directly using partial derivatives if the underlying function is known:

## Interactive Examples(1)

Create an interactive example with draggable points to view the normals update in real time:

## Neat Examples(1)

Assign colors to a point cloud based on the estimated normal directions: