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
>