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 = ?