Recasting points from one vector space to another

I have a collection of 3D points in the standard $x$, $y$, $z$ vector space. Now I pick one of the points $p$ as a new origin and two other points $a$ and $b$ such that $a - p$ and $b - p$ form two vectors of a new vector space. The third vector of the space I will call $x$ and calculate that as the cross product of the first two vectors.

Now I would like to recast or reevaluate each of the points in my collection in terms of the new vector space. How do I do that?

(Also, if 'recasting' not the right term here, please correct me.)

-
Are you sure you are intending x's magnitude to always be the result of the cross product, or only its direction? – Justin L. Jul 20 '10 at 23:47
Enjoy your three identical answers... – BBischof Jul 21 '10 at 5:52

You are changing your basis vectors, call your new ones $i$, $j$, and $k$ where $i$ is defined from $a-p$, $j$ from $b-p$, and $k$ the cross product. Now recall that your basis vectors should be unit, so take the length of your three vectors and divide the vectors by their length, making $i$, $j$, and $k$ unit. Now $a = d(a,p)*i$, $b = d(b,p)*j$.