A normal vector to a curve at a particular point is a vector perpendicular to the tangent vector of the curve at that point (also called a gradient).
Published on Tue, Mar 8, 2016
Last modified on Mon, Sep 8, 2025
436 words -
Page Source
A normal vector to a curve at a particular point is a vector perpendicular to the tangent vector of the curve at that point (also called a gradient). For an implicit 2D function in the form , the 2D gradient is:
For an implicit 3D function, the normal is the vector perpendicular to the surface. The surface normal at a point is given by the gradient of the implicit function:
For a plane, we know that the dot product of the normal and any vector that lies in the plane is zero. Therefore, we can model a plane as the following implicit equation:
Where and are any two points lying on the plane. Sometimes we want the equation of a plane through points . The normal can be found by taking the cross product of any two vectors on the plane:
Transforming Normal Vectors
Normal vectors do not transform the way we would like when theyβre multiplied by a transformation matrix. If the points on a surface are transformed by the transformation matrix , a vector tangent to the surface will still be tangent to the transformed surface. However, a surface normal vector may not be normal to the transformed surface.
For example, when a transformation matrix that skews points toward the -axis multiplies the normal vector , the resulting vector is not normal to the surface. We would like to find a transformation matrix so that is indeed the surface normal.
Transforming Normal
To find the value of , we start from the fact that the normal and the tangent are perpendicular:
Expressed as a matrix multiplication:
After the transformation, theyβre still perpendicular, so:
Applying the transpose:
Relating with , we see that the only way that both equations hold true is that:
The value of is then:
References
Shirley, P. and Ashikhmin, M. (2005). Fundamentals of computer graphics. Wellesley, Mass.: AK Peters.