Re: Draw3D ColorFunction->Hue
- To: mathgroup at smc.vnet.net
- Subject: [mg60356] Re: [mg60336] Draw3D ColorFunction->Hue
- From: "David Park" <djmp at earthlink.net>
- Date: Wed, 14 Sep 2005 03:27:21 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Janwillem, The problem is only that you have to turn off the Lighting in the Draw3DItems statement. Needs["DrawGraphics`DrawingMaster`"] fsize = 14; tstyle = {FontFamily -> "Helvetica", FontSize -> fsize, FontWeight -> "Bold"}; muConcrete = 2.3*0.05; LConcrete = 10; FConcrete = 0.14; lConcrete = 10; RnCorrection = 1 - F (L/lambda)Cosh[x/lambda]/Sinh[L/lambda] // FullSimplify f = RnCorrection /. {mu -> muConcrete, L -> LConcrete, F -> FConcrete}; Draw3DItems[ {Draw3D[f, {lambda, 5, 15}, {x, -LConcrete, LConcrete}, ColorFunction -> (Hue[0.75*(1 - #)] &)], {Text[ "Correction factor", {5, -10, 0.85}, {-.6, 0}, {0, 1}, TextStyle -> tstyle]}}, Lighting -> False, Axes -> Automatic, AxesLabel -> {"Path length (cm)", "Depth (cm)", ""}, BoxRatios -> {1, 1, 0.7}, TextStyle -> tstyle, ImageSize -> 500]; Or, if you want the lighting on to obtain a little shading you can convert the Hue specifications to SurfaceColor specifications and use NeutralLighting. Draw3DItems[ {Draw3D[f, {lambda, 5, 15}, {x, -LConcrete, LConcrete}, ColorFunction -> (Hue[0.75*(1 - #)] &)] /. Hue[h_] :> SurfaceColor[Hue[h]], {Text[ "Correction factor", {5, -10, 0.85}, {-.6, 0}, {0, 1}, TextStyle -> tstyle]}}, NeutralLighting[0.3, 0.5, 0.1], Axes -> Automatic, AxesLabel -> {"Path length (cm)", "Depth (cm)", ""}, BoxRatios -> {1, 1, 0.7}, TextStyle -> tstyle, ImageSize -> 500]; Hope that helps. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Janwillem [mailto:j.vandijk at xyz-nl.com.nijmegen.internl.net] To: mathgroup at smc.vnet.net I want to make a 3D surface plot of which the colour changes depending on the z-value over the full hue-range. With just Plot3D this works. However, I want the z-axis legend vertical and therefore thought of using David Park's package using Draw3D and Draw3DItems. This however refuses to take ColorFunction as an option. 1) Is there a solution for this colouring problem? 2) How do I get the z-label to the left of the plot and still have the box along the plot-axes? Thanks for the help Janwillem <<Graphics`Graphics` <<Graphics`Graphics3D` <<DrawGraphics`DrawingMaster` fsize=14; tstyle={FontFamily\[Rule]"Helvetica",FontSize\[Rule]fsize, FontWeight\[Rule]"Bold"}; muConcrete=2.3*0.05; LConcrete=10; FConcrete=0.14; lConcrete=10; RnCorrection=1-F (L/lambda)Cosh[x/lambda]/Sinh[L/lambda]//FullSimplify f=RnCorrection/.{mu->muConcrete,L->LConcrete,F\[Rule]FConcrete}; p3d=Plot3D[f,{lambda,5,15},{x,-LConcrete,LConcrete}, ColorFunction\[Rule](Hue[0.75*(1-#)]&), AxesLabel\[Rule]{"Path length (cm)","Depth (cm)","Correction factor"}, BoxRatios\[Rule]{1,1,0.7},TextStyle->tstyle,ImageSize\[Rule]500]; pl=Draw3D[f,{lambda,5,15},{x,-LConcrete,LConcrete}]; Draw3DItems[{pl,{Text["Correction factor",{5,-10,0.85},{-.6,0},{0,1}, TextStyle\[Rule]tstyle]}},Axes\[Rule]Automatic, AxesLabel\[Rule]{"Path length (cm)","Depth (cm)",""}, BoxRatios\[Rule]{1,1,0.7},TextStyle->tstyle,ImageSize\[Rule]500]