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?

$\endgroup$
1
  • $\begingroup$ In general they won't intersect. Do you have any concrete examples that you are working with? $\endgroup$
    – orangeskid
    Jan 24, 2015 at 11:32

1 Answer 1

0
$\begingroup$

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.

$\endgroup$
1
  • 2
    $\begingroup$ No, careful, you could have $C_1(s) = C_2(t)$ as a common point, while $s \ne t$. $\endgroup$
    – orangeskid
    Jan 24, 2015 at 11:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .