If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

Main content

Constructing a unit normal vector to curve

Given a curve in two dimensions, how do you find a function which returns unit normal vectors to this curve?

What we're building to

  • A unit normal vector to a two-dimensional curve is a vector with magnitude 1 that is perpendicular to the curve at some point.
  • Typically you look for a function that gives you all possible unit normal vectors of a given curve, not just one vector.
  • To find the unit normal vector of a two-dimensional curve, take the following steps:
    • Find the tangent vector, which requires taking the derivative of the parametric function defining the curve.
      • Rotate that tangent vector 90, which involves swapping the coordinates and making one of them negative.
      • Normalize the result, which requires dividing it by its own magnitude.
  • Abstractly speaking, the result you get will look something like this:
    For a given tiny step along the curve, think of dx as the x-component of that step, dy as the y-component of that step, and ds as the length of that step.

Example: Normal vectors to a sine curve

Consider the graph of the function f(x)=sin(x).
Imagine you want a function that gives you unit normal vectors to this curve (perhaps because you wish to compute flux through it). In other words, for any point on the curve, you want to be able to give the coordinates of a vector perpendicular to that curve with magnitude 1.
This means you want an expression that can take any point on the curve, and return a vector with magnitude 1 that is perpendicular to the curve at that point.

Step 0: Parameterize

Before anything, we need to make sure our curve is in parametric form. Turning a function graph into a parametric function is simple enough. We let the parameter t play the role of x:
I call this "Step 0" because often your curve is initially defined parametrically in the first place, so this would be given to you for free.
What this means for our unit normal vector is that we will find a second vector-valued function which also takes in t, but instead of outputting points on the sine curve itself, its outputs will be unit vectors normal to the curve at the point v(t).

Step 1: Find a tangent vector

When you take the derivative of the parametric function, it will give you a tangent vector to the curve:
If this seems unfamiliar, consider reviewing the article on derivatives of vector-valued functions.
For our example, here's what that looks like:
For example, if you plug in t=π to this function, you get the following vector:
When you move this vector so that its tail sits at the point v(π), which for our sine curve is (π,0), it will be tangent to the curve.

Step 2: Rotate this vector 90

To turn a tangent vector into a normal vector, rotate it by 90. How do you do this? Swap the two components and make one of them negative:
How do you choose which component to make negative? If you are rotating counterclockwise, make the first component negative; if you are rotating clockwise, make the second component negative.
In our example, let's rotate the tangent vector counterclockwise so that it points up:
[1cos(t)]Tangent vector[cos(t)1]Normal vector

Step 3: Scale it to magnitude 1

Great! We have a normal vector. But to make this a unit normal vector, we must divide it by its own magnitude. In our example, the magnitude is as follows:
Therefore, our unit normal vector function n^(t) looks like this:


Let's generalize the steps of this example to see how they apply to any parametric curve.
  • Step 0: Make sure the curve is given parametrically
  • Step 1: Find a tangent vector to your curve by differentiating the parametric function:
  • Step 2: Rotate this vector 90 by swapping the coordinates and making one negative.
    [x(t)y(t)]Tangent vector[y(t)x(t)]Normal vector
  • Step 3: To make this a unit normal vector, divide it by its magnitude:
If you prefer, you can think in terms of differentials, with a tiny step along the curve being represented by the vector [dxdy]. The magnitude of this step is ds=dx2+dy2. In this terminology, you might instead write down the unit normal vector like this:

Want to join the conversation?