0
$\begingroup$

If I have a horizontal line (a 3d point and 3d vector with zero z component) and another plane (could be an oblique or a horizontal; i have normal vector of the plane); then how do we get the direction (3d) of the 3d line which lie on top of the plane.

For that, I wish to project the above horizontal line on to the given plane.

(I made more clear the original post.)

1 Answers 1

0

I'm not sure what a 2d vector is. I'm assuming you're specifying the line by the span of some vector $v$ translated by the 3d point $p$: $L = p + vt.$

You can specify a plane by two vectors and a point, or by a point and a vector. For the first, call the two vectors $v_1$ and $v_2$, and the point $q$. The plane is $rv_1 + sv_2 + q$.

If $p + vt$ does not intersect the plane, the projection can be written as a translation. If it does intersect the plane, pick $p$ and $q$ so that they coincide with the intersection of the line and the plane. Change coordinates so that $p=q=0$. Now all you do is project the vector $v$ onto $v_1$ and $v_2$. The projection map is

$tv\mapsto t\langle v,v_1\rangle v_1 + t\langle v,v_2\rangle v_2.$

If you want to work with a point $q$ and a single vector $w$ which specifies the plane by $\{x\ |\ \langle x,w\rangle = 0\} + q$, again translate coordinates to the intersection point $p=q=0$. Then project onto the span of $w$, and subtract that new line from the old line:

$ vt\mapsto vt - t\langle v,w\rangle w. $

  • 0
    @Neal: ok thanks2012-02-20