GACK, there are two flavors of InfiniteLine, ...[p,q] and ...[{p.q}]! The intersection (derived with the same zeta trick) based on the version defined by a pair of points is ppPlane[InfiniteLine[{{a_, b_, c_}, {d_, e_, f_}}], Hyperplane[{g_, h_, i_}, {j_, k_, l_}]] := Point[{(b d h + c d i - d (g j + h k + i l) + a (-e h - f i + g j + h k + i l))/( a g - d g + b h - e h + c i - f i), ( e (a g + c i - g j - h k - i l) + b (-d g - f i + g j + h k + i l))/( a g - d g + b h - e h + c i - f i), ( f (a g + b h - g j - h k - i l) + c (-d g - e h + g j + h k + i l))/( a g - d g + b h - e h + c i - f i)}] --rwg On Sat, Mar 19, 2016 at 3:06 AM, Bill Gosper <billgosper@gmail.com> wrote:
Mathematica won't intersect a line with a plane if any coordinate is non-numeric. So I tricked it into confessing the general case by replacing the twelve symbolic coordinates with Zeta 3, ... , Zeta 25, and then back-substituting. Safe, as long as nobody knows how to simplify the Zetaberg. A burlesque of Bell's inequality? --rwg
ppPlane[InfiniteLine[{a_, b_, c_}, {d_, e_, f_}], Hyperplane[{v1_, v2_, v3_}, {p1_, p2_, p3_}]] := Point[{ (a (e v2 + f v3) + d (p1 v1 - b v2 + p2 v2 - c v3 + p3 v3))/(d v1 + e v2 + f v3), (b (d v1 + f v3) + e (-a v1 + p1 v1 + p2 v2 - c v3 + p3 v3))/(d v1 + e v2 + f v3), (c (d v1 + e v2) + f (-a v1 + p1 v1 - b v2 + p2 v2 + p3 v3))/(d v1 + e v2 + f v3)}]