|
[Date Index]
[Thread Index]
[Author Index]
Re: Slow plotting of reflected parametric "butterflies"
- To: mathgroup at smc.vnet.net
- Subject: [mg124447] Re: Slow plotting of reflected parametric "butterflies"
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Fri, 20 Jan 2012 01:48:36 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201201191013.FAA03742@smc.vnet.net>
- Reply-to: murray at math.umass.edu
I don't have any suggestions, at least yet, on speeding up your code.
However, you should avoid naming things "C" and "D", since those names
stand for objects already built into Mathematica. In fact, didn't you
notice that running your code gives Shadowing warning messages?
On 1/19/12 5:13 AM, Chris Young wrote:
> I'm wondering if there's anyway I can speed this up. It's basically
> just some sections of a parabolic hyperboloid, with the outer edges
> curves. I'm porting it from another program, where it ran much faster.
> I had to chop it up into parts for that program, but maybe this isn't
> the best way to do it in Mathematica.
>
> http://home.comcast.net/~cy56/Mma/ReflectedButterflies.nb
> http://home.comcast.net/~cy56/Mma/ReflectedButterfliesPic.png
>
> Chris Young
> cy56 at comcast.net
>
>
> \[HorizontalLine]CurvedButterfly[A_, B_, C_, D_, u_,
> v_, \[ScriptC]_] :=
>
> Table[
> (A + B + C + D)/4 +
> j Sqrt[1 - \[ScriptC] v] u/2 ((A + C)/2 - (B + D)/2) +
> k u/2 v (((C + D)/2 + j u (C - D)/2) - ((A + B)/2 +
> j u (A - B)/2)),
> {j, {-1, 1}}, {k, {-1, 1}}
> ] // FullSimplify // Flatten[#, 1]&
> Putting Butterfly into a Manipulate module:
> Manipulate[
> With[
> {
> A = {Ax, Ay, Az},
> B = {Bx, By, Bz},
> C = {Cx, Cy, Cz},
> D = {Dx, Dy, Dz}
> },
> Show[
> ParametricPlot3D[
> Table[
> ( {
> {\[ScriptI], 0, 0},
> {0, \[ScriptJ], 0},
> {0, 0, \[ScriptK]}
> } ). #& /@ \[HorizontalLine]CurvedButterfly[A, B, C, D, u,
> v, wingCurve],
> {\[ScriptI], {-1, 1}}, {\[ScriptJ], {-1, 1}}, {\[ScriptK], {-1,
> 1}}],
> {u, 0, 1}, {v, 0, 1},
>
> PlotRange -> 2.5,
> Lighting -> "Neutral",
> ColorFunctionScaling -> False,
> ColorFunction -> ({x, y, z, u, v} \[Function]
> Hue[\[LeftFloor]5 v\[RightFloor]/10]),
> Mesh -> None,
> PlotPoints -> plotPts,
> AxesLabel -> {"x", "y", "z"}
> ],
> Graphics3D[
> {
> With[{pts = {A, B, C, D}},
> Table[{Hue[(k - 1)/4], Sphere[pts[[k]], ptRad]}, {k, 1, 4}]
> ]
> }
> ]
> ]
> ],
> {{Ax, 1.25}, -2.5, 2.5, 0.03125},
> {{Ay, 2}, -2.5, 2.5, 0.03125},
> {{Az, 0.75}, -2.5, 2.5, 0.03125},
>
> {{Bx, 1.75}, -2.5, 2.5, 0.03125},
> {{By, 0.5}, -2.5, 2.5, 0.03125},
> {{Bz, 0.125}, -2.5, 2.5, 0.03125},
>
> {{Cx, 0.5}, -2.5, 2.5, 0.03125},
> {{Cy, 0.375}, -2.5, 2.5, 0.03125},
> {{Cz, 0.25}, -2.5, 2.5, 0.03125},
>
> {{Dx, 0.375}, -2.5, 2.5, 0.03125},
> {{Dy, 0.125}, -2.5, 2.5, 0.03125},
> {{Dz, 1.25}, -2.5, 2.5, 0.03125},
>
> {{plotPts, 4}, 2, 30, 1},
> {{ptRad, 0.1}, 0, 0.3},
> {{wingCurve, 0}, 0, 1}
> ]
>
>
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
Prev by Date:
Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
Next by Date:
Re: Is there any efficient easy way to compare two lists with the same length with Mathematica?
Previous by thread:
Slow plotting of reflected parametric "butterflies"
Next by thread:
Re: Slow plotting of reflected parametric "butterflies"
|