Re: Can i render a Disk[] in Graphics3D?
- To: mathgroup at smc.vnet.net
- Subject: [mg81397] Re: Can i render a Disk[] in Graphics3D?
- From: "David Park" <djmpark at comcast.net>
- Date: Sat, 22 Sep 2007 03:21:37 -0400 (EDT)
- References: <fcvqqc$7ll$1@smc.vnet.net>
To draw a disk in 3D we have to specify its orientation as well as its position. Here is the way I would do it in DrawGraphics: Needs["DrawGraphics6`DrawingMaster`"] Disk3D::usage = "Disk3D[position, normal, radius, plotoptions will draw a disk with \ the specified position and radius. The orientation of the disk is \ given by the normal vector.]"; Options[Disk3D] = Complement[Options[ParametricPlot3D], Options[Graphics3D]]; SyntaxInformation[ Disk3D] = {"ArgumentsPattern" -> {{_, _, _}, {_, _, _}, _, OptionsPattern[]}}; Disk3D[position_, normal_, radius_, plotopts : OptionsPattern[]] := Module[{s}, ParametricDraw3D[{s Cos[\[Theta]], s Sin[\[Theta]], 0}, {s, 0, radius}, {\[Theta], 0, 2 \[Pi]}, plotopts, PlotPoints -> {12, 32}] // RotationTransformOp[{{0, 0, 1}, normal}] // TranslationTransformOp[position] // Quiet ] The following draws one disk in the starting position and another disk in a general position. Normal vectors were added to the disks. Draw3DItems[ {Opacity[0.8], Lighter@Brown, Disk3D[{0, 0, 0}, {0, 0, 1}, 2, Mesh -> {5, 10}], Pink, Disk3D[{2, 2, 2}, {2, 0, 2}, 1, Mesh -> None], Green, Arrow3D[{0, 0, 0}, {0, 0, 1}, {0.3}], Arrow3D[{2, 2, 2}, {2, 2, 2} + Normalize[{2, 0, 2}], {0.3}]}, NeutralLighting[0, 0.5, 0.1], PlotRange -> All, Axes -> True, ImageSize -> 400] -- David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ "robert prince-wright" <robertprincewright at yahoo.com> wrote in message news:fcvqqc$7ll$1 at smc.vnet.net... > > Is there a way of rendering a Disk[] primitive in Mathematica 6.0.1 using > Graphics3D? It seems like the new version restricts Disk[], Circle[], etc > to > 2-D graphics. I'm also surprised at how limited the primitives are > or rendering 3D images - is this a limitation of Java or Mathematica? > Robert >