A fun problem. And here is another approach. The equation for the second plane is generated as the set of all lines through the given point, and orthogonal to the normal of the first plane. Then a point-vector form for a 3D line using the point and the normal is intersected with plane 1 to find the corresponding point.
In[1]:= (* equation for the first plane *)
plane1 = x + y - z == 0;
In[2]:= (* point on second plane *)
pointOnPlane2 = {3, -2, 8};
In[3]:= (* Each point on plane 2 can be associated with a vector from \
the given point *)
vectors = {x, y, z} - pointOnPlane2
Out[3]= {-3 + x, 2 + y, -8 + z}
In[4]:= (* Each vector is embedded in plane 2,and is therefore \
orthogonal to any normal to the plane 2. Since the planes are \
parallel, we choose a normal to the first plane. *)
In[5]:= normalToPlane1 = Grad[plane1[[1]], {x, y, z}]
Out[5]= {1, 1, -1}
In[6]:= (* we impose the orthogonality constraint on the set of vectors which \
generate plane 2 *)
plane2 = vectors.normalToPlane1 == 0
Out[6]= 7 + x + y - z == 0
In[7]:= (* now use a point-vector form for a line normal to both \
planes containing the point on plane 2, and intersect that with plane \
1 to get the corresponding point *)
pointOnPlane1 = {x, y, z} /.
ToRules@
Reduce[{plane1, {x, y, z} == pointOnPlane2 + t normalToPlane1}]
Out[7]= {16/3, 1/3, 17/3}
In[8]:= pmax = 15;
In[9]:= plot = Show[
ContourPlot3D[{plane1, plane2} // Evaluate, {x, -pmax,
pmax}, {y, -pmax, pmax}, {z, -pmax, pmax},
AxesLabel -> {"X", "Y", "Z"}, ContourStyle -> Opacity[0.6]],
ListPlot3D[{pointOnPlane2, pointOnPlane1},
PlotStyle -> Directive[PointSize[.02], Red]],
Graphics3D@{Red, Thick, Line[{pointOnPlane1, pointOnPlane2}]}
]
Attachments: