2
$\begingroup$

I need to calculate the intersection of two 3D parametric curves $\vec{C_1}$ and $\vec{C_2}$.

link to image

Those curves are parameterised by piecewise functions.

$\vec{C_1}= \begin{pmatrix}x_1(t)\\y_1(t)\\z_1(t)\end{pmatrix}\\ \vec{C_2}= \begin{pmatrix}x_2(t)\\y_2(t)\\z_2(t)\end{pmatrix}$

For example, $x_1(t)$ could look like this:

link to image

Ultimately, I need to calculate the intersection in C++ where I could use an arbitrary solver library, but first I need to get the math straight.

How can I transform this problem to a computer solvable formulation?

  • 0
    In general they won't intersect. Do you have any concrete examples that you are working with?2015-01-24

1 Answers 1

0

As long as your curves can be described either as by a function or even from data points, you can try to find the value of $t$ that the difference of the two curves to $0$, or approximately $0$ since you are implementing this.:

$\hat C_1(t) - \hat C_2(t) = 0$

One problem is that these may not necessarily intersect but that will only be known once it is attempted.

  • 1
    No, careful, you could have $C_1(s) = C_2(t)$ as a common point, while $s \ne t$.2015-01-24