Re: Ragged region boundary
- To: mathgroup at smc.vnet.net
- Subject: [mg123294] Re: Ragged region boundary
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Wed, 30 Nov 2011 03:23:10 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <javpho$jct$1@smc.vnet.net> <jb2i3g$5hk$1@smc.vnet.net>
Hi, you have to install the XCode-tools separately, but they should be on one of the DVDs you got. I always get XCode when buying an Apple. But you don't have to use necessarily the "C" option. Just use Compile and it should be faster. Cheers Patrick On Tue, 2011-11-29 at 08:06 -0500, Chris Young wrote: > This looks like a great idea. Thanks very much. Unfortunately, I can't > seem to find a C compiler on my Mac. Maybe Apple is charging for the > development package now, I don't know. I'll look into it. > > In[80]:= Needs["CCompilerDriver`"] > In[86]:= CCompilers[] > Out[86]= {} > > On 2011-11-29 12:10:24 +0000, Patrick Scheibe said: > > > Hi, > > > > first you could compile your torus-function and compare the runtimes > > > > torus[c_, a_, u_, v_] := {(c + a Cos[v]) Cos[u], (c + a Cos[v]) Sin[u], > > a Sin[v]}; > > torusCompiled = > > Compile[{{c, _Real}, {a, _Real}, {u, _Real}, {v, _Real}}, > > {(c + a Cos[v]) Cos[u], (c + a Cos[v]) Sin[u], a Sin[v]}, > > CompilationTarget -> "C"]; > > > > In[38]:= First[ > > AbsoluteTiming[Do[#[1.3, 0.3, 2.3, 4.5], {1000000}]]] & /@ {torus, > > torusCompiled} > > > > Out[38]= {5.190318, 0.863473} > > > > and then you could set MaxRecursion to a higher value. Since then the > > runtime drops further, you could use ControlActive to use a very fast > > version, when you use the sliders. See the code at the end. > > > > Your "equator" is not the only unwanted boundary, but you don't see the > > other one. These are the lines where your PlotRange ends. The doc to > > BoundaryStyle says > > > > "For 3D graphics, it is also used at the boundary of regions defined by > > PlotRange." > > > > So these lines are at 0 and 2Pi for both of your variables. I have no > > idea how to turn them off. > > > > Cheers > > Patrick > > > > Manipulate[ > > ParametricPlot3D[ > > torusCompiled[c, a, u, v], {u, 0, 2 \[Pi]}, {v, 0, 2 \[Pi]}, > > MeshFunctions -> {{x, y, z, \[Theta], \[Phi]} \[Function] > > z + Tan[tilt] x}, > > RegionFunction -> ({x, y, z, \[Theta], \[Phi]} \[Function] > > z <= -Tan[tilt] x), > > Mesh -> mesh, > > MaxRecursion -> ControlActive[0, 5], > > MeshStyle -> {Lighter[Yellow], Tube[tubeR]}, > > BoundaryStyle -> {Lighter[Red], Tube[tubeR]}, > > PlotStyle -> {Orange, Opacity[opac]}, > > PlotPoints -> ControlActive[10, plotPts], > > Axes -> True, > > AxesLabel -> {"x", "y", "z"}, > > PlotRange -> {{-4, 4}, {-4, 4}, {-3, 3}}, > > BoxRatios -> {8, 8, 6}, > > ViewPoint -> > > { > > viewR Cos[view\[Theta]] Sin[view\[Phi]], > > viewR Sin[view\[Theta]] Sin[view\[Phi]], > > viewR Cos[view\[Phi]] > > }, > > PerformanceGoal -> "Quality" > > ], > > > > {{c, 3}, 0, 4}, > > {{a, 1}, 0, 3}, > > {{sphereR, 0.1}, 0, 0.5}, > > {{tubeR, 0.05}, 0, 0.5}, > > {{opac, 0.5}, 0, 1}, > > {{mesh, 0}, 0, 16, 1}, > > {{tilt, N[ArcSin[a/c]]}, 0, \[Pi]/2, \[Pi]/36}, > > {{plotPts, 50}, 0, 200, 5}, > > {{viewR, 100}, 0, 100, 5}, > > {{view\[Theta], \[Pi]/2}, 0, 2 \[Pi], \[Pi]/36}, > > {{view\[Phi], \[Pi]/2}, 0, \[Pi], \[Pi]/36} > > ] > >