0
$\begingroup$

If I have a know point cloud before and after a transformation (it could squish, deform, rotate, etc.) and a known center of the point cloud before and after a transformation I'd like to see how a vector is transformed with that system.

I'd like to have each point in the point cloud contribute to the vectors transformation. It seems like I'd like to use the positions of the points in my cloud as basis vectors and then project my vector onto the basis vectors to get the vectors coefficients in the initial system and then use the coefficients in the final system to reconstruct my vector in the new point cloud system.

I'm a bit confused as how to use a basis thats non-orthogonal and overly spans the r^3 basis. I do want each point in the cloud to contribute so I don't want to just use 3 basis vectors. Any idea how to do the projection and reconstruction?

  • 0
    You are right so it's ok if some $\alpha_i$ are 0.2011-03-16

1 Answers 1

0

Let's say you have three vectors $u_{1,1}, u_{1,2}, u_{1,3}$ that span $\mathbb R^3$ and you have a fourth vector $v_1$, so you can write:

$v_1 = \tau_1 u_{1,1} + \tau_2 u_{1,2} + \tau_3 u_{1,3}$

Finding the $\tau$:s is just solving a linear system. Now, let's say that also have vectors $v_2$, $v_3$ such that $v_1, v_2, v_3$ span $\mathbb R^3$. And that you can decompose $v_2$ and $v_3$ as you decomposed $u_3$:

$v_2 = \tau_1 u_{2,1} + \tau_2 u_{2,2} + \tau_3 u_{2,3}$ $v_3 = \tau_1 u_{3,1} + \tau_2 u_{3,2} + \tau_3 u_{3,3}$

and you have an additional vector $w = \alpha_1 v_1 + \alpha_2 v_2 + \alpha_3 v_3$. Now you can write:

$\begin{align} w &= \frac{1}{2} \left( \alpha_1 v_1 + \alpha_2 v_2 + \alpha_3 v_3 \right) + \frac{1}{2} \left( \alpha_1 v_1 + \alpha_2 v_2 + \alpha_3 v_3 \right) = \\ &= \frac{1}{2} \left( \alpha_1 v_1 + \alpha_2 v_2 + \alpha_3 v_3 \right) + \frac{1}{2}\alpha_1 \left(\tau_1 u_{1,1} + \tau_2 u_{1,2} + \tau_3 u_{1,3} \right) + \\ &+ \frac{1}{2}\alpha_2 \left( \tau_1 u_{2,1} + \tau_2 u_{2,2} + \tau_3 u_{2,3} \right) + \frac{1}{2}\alpha_3 \left( \tau_1 u_{3,1} + \tau_2 u_{3,2} + \tau_3 u_{3,3} \right) \end{align}$

You can continue this process as long as you need (decomposing the $u_{i,j}$ and so on). The $v$ and $u$-vectors are your vectors that you have got from the points. Of course, all the decompositions of these can be calculated beforehand, if you want to apply this to more than one vector, and you just calculate the $\alpha$:s for every vector. You will get zeros if one of the $v$:s is not part of $w$, and this zero will "trickle down" to produce a lot of zeros. You might want to have "backup decompositions" if you get a zero $\alpha$ (if this is an option). Of course, when you choose which vectors should go where, you should make sure that all coefficients are non-zero.

You don't have to decompose in halves, as I have done. You can use any other constants as long as they sum to 1.

Of course, this decomposition is not unique. And technically, this is not a basis. A basis is linearly independent.

Now I am curious, why do you want this? Can't you just calculate the image of every point?

  • 0
    Not each point is transformed equally. The system is not a rigid body its deformable so some points get rotation while some points get scaled and rotated. Imagine you have a bean bag or flat beach ball that is rolling around on the ground.2011-03-16