# This Maple would benefit from some syntactic sugar --- #it's just P := <L F>_3 in Clifford algebra |R^{3,0,1} . WFL read(`/Users/fred/fred/euclidean/clifford.map`): # Clifford algebra GA_init([0, seq(+1, i = 1..3)]): # initialise Euclidean 3-space L := GA_build([Lu, Lv, Lw, Lz, Ly, Lx], 2); # moment & direction of line L F := GA_build([Fo, Fx, Fy, Fz], 1); # coefficients of plane F P := GA_grator(GA_prod(L, F), 3); # L,F meet at P convert(P, list); # coordinates & proj. scale factor of point P [Fo*Lz+Fx*Lv-Fy*Lu, Fo*Ly-Fx*Lw+Fz*Lu, Fo*Lx+Fy*Lw-Fz*Lv, -Fx*Lx-Fy*Ly-Fz*Lz] On 3/19/16, 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)}] _______________________________________________ math-fun mailing list math-fun@mailman.xmission.com https://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun