Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Distance to curve

  1. Apr 15, 2006 #1

    I have a bezier curve defined by:
    \vec{b}(t) = (x(t), y(t))
    x(t) &=& a_xt^3 + b_xt^2 + c_xt + x_0 \\
    y(t) &=& a_yt^3 + b_yt^2 + c_yt + y_0
    for [tex]t \in \lbrack 0, 1 \rbrack[/tex]. All constants are computed from vertices on the curve and control points associated with those vertices.

    For an arbitrary point [tex]\vec{r}\in\mathbb{R}^2[/tex] I want to find all points [tex]\vec{b}_{t_0}\in\vec{b}(t)[/tex] (if any) that satisfies
    [tex]\vec{b}_{t_0} + \nabla\vec{b}(t_0)s = \vec{r}[/tex]
    for some [tex]s[/tex].

    Not sure I'm correct here, but as fas as I remember, [tex]\nabla \vec{b}(t)[/tex] is the normal to the curve, right?

    I don't know how to explain this in a better way...
    For any point [tex]\vec{r}[/tex] I want to find all points [tex]\vec{b}(t_0)[/tex] such that the normal to [tex]\vec{b}(t_0)[/tex] intersects [tex]\vec{r}[/tex].

    How can I do this?

    Thanks in advance,
  2. jcsd
  3. Apr 15, 2006 #2
    No, [tex]\nabla \vec{b}(t)[/tex] (or rather [tex]\frac{d \vec{b}}{dt}(t)[/tex]) is the tangent vector to the curve. I suppose you're looking for all [tex]t_0[/tex] for which the vector [tex]\vec{b}(t_0)-\vec{r}[/tex] is perpendicular to the tangent vector. This just means that there dotproduct is zero:

    [tex](\vec{b}(t_0)-\vec{r})\cdot\frac{d \vec{b}}{dt}(t_0)=0[/tex]
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook