find intersection point point of 4 (or maybe more) planes.

70 Views Asked by At

I working on a system with light, cameras and an eye. I need to find, from the position of the light and camera reflected on the eye, a position inside the eye. In order to do that, I have this formula:

I am in a 3D system, given the formula: $$((L-C)\times(U-C))\cdot(C_C-C) = 0$$

(here $\times$ represent a cross-product and $\cdot$ a dot product)

I know the position of $L$, $C$ and $U$. I need to find the position of $C_C$.

in order to do that, I have 2 different $C$ and $2$ different $L$ equations like that:

$$((L_0-C_0)\times(U_0-C_0))\cdot(C_C-C_0) = 0$$ $$((L_1-C_0)\times(U_1-C_0))\cdot(C_C-C_0) = 0$$ $$((L_0-C_1)\times(U_2-C_1))\cdot(C_C-C_1) = 0$$ $$((L_1-C_1)\times(U_3-C_1))\cdot(C_C-C_1) = 0$$

How can I isolate the $X_{cc}$,$Y_{cc}$ and $Z_{cc}$ and so find the position of $C_C$ ?

I tried to do it via a substitution and addition methods of the equation but at the end, my $X_{cc}$,$Y_{cc}$ and $Z_{cc}$ is equal to $0$.

1

There are 1 best solutions below

0
On BEST ANSWER

If I understood you correctly you have two equations

$v_1 \cdot (C_c-C_0)=0 $
$v_2 \cdot(C_c-C_0)=0 $ where $v_1,v_2$ and $C_0$ are known

and additional two ones

$v_3 \cdot(C_c-C_1)=0 $
$v_4 \cdot(C_c-C_1)=0 $ where $v_3,v_4$ and $C_1$ are known.

Clearly
$(C_c-C_0)$ is orthogonal to both $v_1$ and $v_2$ so it is of the form $(C_c-C_0) = k(v_1 \times v_2)=k v_{12}$ where $k$ is some unknown scalar and
$(C_c-C_1)$ is orthogonal to both $v_3$ and $v_4$ so it is of the form $(C_c-C_1)=l(v_3 \times v_4)=l v_{34}$ where $l$ is some unknown scalar.

So in fact you have two straight line equations $C_c=C_0+k v_{12} $ and $C_c=C_1+l v_{34} $.

Comparing both equations we can obtain unknown $k,l$ and consequently $C_c$, however it would be a case only under condition that all data are perfectly geometrically accurate and both lines intersect at one point (namely $C_c$).

In the case of more experimental data probably these two lines don't intersect.

In this case the midpoint of the segment which is perpendicular to both lines will be the best solution of the problem. Note that this segment is unique for skew lines in 3D space.

This segment has direction $v_s=( v_{12}\times v_{34} )$ and equation embracing it $C_0-C_1= k_sv_{12}+l_sv_{34}+m_sv_s$, where we have three unknown $k_s \ ,l_s, \ m_s$ which can be accurately calculated from the 3-dimensional vector equation above. It can be transformed further into matrix form

$C_0-C_1= [v_{12} \ \ v_{34} \ \ v_s][k_s \ \ l_s \ \ m_s]^T$

$ [k_s \ \ l_s \ \ m_s]^T=[v_{12} \ \ v_{34} \ \ v_s]^{-1}(C_0-C_1) $

Of course vectors $v_s, \ v_{34}, \ v_{12}$ should be linearly independent which, I hope, is guaranteed under conditions of the experiment.

Having this you should easily calculate the searched midpoint which can be regarded as $C_c$.