Re: How to ParametricPlot3D a plane given Normal and Distance
- To: mathgroup at smc.vnet.net
- Subject: [mg84694] Re: How to ParametricPlot3D a plane given Normal and Distance
- From: "David Park" <djmpark at comcast.net>
- Date: Thu, 10 Jan 2008 02:26:16 -0500 (EST)
- References: <fm22bj$94u$1@smc.vnet.net>
Let d be the distance of the plane from the origin and n the normal to the plane. Then the plane will be tangent to a sphere of radius d about the origin. We can use the Mathematica geometric transformation routines. Draw a plane segment in the xy-plane. Then rotate the z-axis to the n direction. Then translate in the n direction to the suface of the sphere. I'm going to make the diagram using the Presentations package using particular values for d and n. Needs["Presentations`Master`"] With[ {d=3, n={1,-1,1}}, Draw3DItems[ {(* Draw sphere of radius d *) Opacity[.5,Orange],Sphere[{0,0,0},d], (* Draw xy-plane segment, rotate to normal and translate to the sphere *) Opacity[.8,Lighter@Blue], ParametricDraw3D[{x,y,0},{x,-d,d},{y,-d,d}, Mesh->10]//RotationTransformOp[{{0,0,1},n}]//TranslationTransformOp[d Normalize[n]], (* Draw a line and 3D arrow to indicate the normal *) Opacity[1,Black], Line[{{0,0,0},d Normalize[n]}], Green, Arrow3D[d Normalize[n],2d Normalize[n]]}, NeutralLighting[0,.6,.1,40=B0], NiceRotation, PlotRange->2d, Axes->True, ImageSize->350] ] To obtain the parametrization for the plane, so you could plot it with ParametricPlot3D we can use: With[ {d = 3, n = {1, -1, 1}}, TranslationTransform[d Normalize[n]]@ RotationTransform[{{0, 0, 1}, n}]@{x, y, 0} // Simplify] {Sqrt[3] + 1/6 (3 + Sqrt[3]) x - 1/6 (-3 + Sqrt[3]) y, 1/6 (-6 Sqrt[3] - (-3 + Sqrt[3]) x + (3 + Sqrt[3]) y), ( 3 - x + y)/Sqrt[3]} Unfortunately, RotationTransform will not evaluate with symbolic vectors so it is not as easy to obtain a general symbolic parametrization. -- David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ "John Rivers" <first10 at btinternet.com> wrote in message news:fm22bj$94u$1 at smc.vnet.net... > hello > > this has eluded me for some reason ... > > > nx = 0; ny = 0; nz = 1; (* plane's surface normal *) > > dist = 0; (* distance of plane from origin *) > > fx1 = ???; > fx2 = ???; > fx3 = ???; > > ParametricPlot3D[ > {fx1, fx2, fx3}, (* functions for x y and z coordinates *) > {t, -10, 10}, > {u, -10, 10} > ] > > what should the functions fx1 fx2 and fx3 be ? > > i have been playing around with: > > Ax + By + Cz = D > - and - > <x, y, z> dot <nx, ny, nz> = D > > but not got anywhere yet > > thanks > > John >