Find Distance to Curve for Arbitrary Point - Nille

  • Context: Graduate 
  • Thread starter Thread starter LostInSpace
  • Start date Start date
  • Tags Tags
    Curve
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 replies · 6K views
LostInSpace
Messages
21
Reaction score
0
Hi!

I have a bezier curve defined by:
[tex] \vec{b}(t) = (x(t), y(t))[/tex]
where
[tex] \begin{array}{lcl}<br /> x(t) &=& a_xt^3 + b_xt^2 + c_xt + x_0 \\<br /> y(t) &=& a_yt^3 + b_yt^2 + c_yt + y_0<br /> \end{array}[/tex]
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,
Nille
 
on Phys.org
LostInSpace said:
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?
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]