 
 
 
 
 
 
Re: Colorfunction + parametricplot3d + plotrange = ?
- To: mathgroup at smc.vnet.net
- Subject: [mg103932] Re: [mg103774] Colorfunction + parametricplot3d + plotrange = ?
- From: Chris Hill <chill at wolfram.com>
- Date: Tue, 13 Oct 2009 07:19:28 -0400 (EDT)
- References: <200910051716.NAA10565@smc.vnet.net>
This is a bug.  It affects a Line with VertexColors that goes outside 
the PlotRange of a Graphics3D object, such as the one produced by a 
ParametricPlot3D of one parameter with a ColorFunction where the 
curve is outside the PlotRange.  The issue has been corrected in the 
internal development build and the fix will appear in a future release.
A workaround is to prevent the curve from leaving the 
PlotRange.  Here I do this by using RegionFunction to clip the curve 
to the desired range, change the PlotRange to All, and add 8 dummy 
polygons to make the PlotRange at least as big as the desired range.
With[{plotRange = {{-6, 6}, {-6, 6}, {-6, 6}}},
  ParametricPlot3D[{5*Cos[fi], 5*Sin[fi], fi}, {fi, 0, 2 Pi},
    ColorFunction -> Function[{xx, yy, zz}, If[zz < 2, Red, Blue]],
    PlotStyle -> {Thickness[0.01]}, ColorFunctionScaling -> False,
    PlotRange -> All,
    RegionFunction ->
     With[{plotRangeRegion =
        And @@ MapIndexed[And[Slot @@ #2 >= First[#], Slot @@ #2 <= Last[#]] &,
           plotRange]}, plotRangeRegion &]] /.
   Graphics3D[prims_, opts___] :>
    Graphics3D[{Polygon[Table[#, {3}] & /@ Tuples[plotRange]], prims}, opts]]
Sorry for the inconvenience and I hope the workaround is helpful.
Chris Hill
Wolfram Research 
- References:
- Colorfunction + parametricplot3d + plotrange = ?
- From: koringkriek <astronerma@gmail.com>
 
 
- Colorfunction + parametricplot3d + plotrange = ?

