1
$\begingroup$

I created a CDF for viewing the Möbius Band, and its generation.

https://www.dropbox.com/s/e3af0xelbbqjfhd/Cinta_Moebious_Rafa.cdf

But: 1.- When it´s PAUSED the surface is soft and you can see with quality.

2.- But when you are playing and move the segmente that generate Möbius Band, .... the band seems to be less quality, and you can see point-squares, instead a soft line in the border.

...as you can see:

enter image description here

How can i do to maintain the surface .... soft!!

Any option in SaveDefaults?.... to save more points???

------------- This code is edited after cormullion message f[u_] = {2 Sin[u], 2 Cos[u], 0} g[u_] = {0, Sin[u/2], Cos[u/2]} Manipulate[ Show[ ParametricPlot3D[f[u] + v g[u], {v, -1, 1}, {u, 0, 2 Pi}, PlotRange -> {-3.2, 3.2}, Axes -> True, AxesLabel -> {x, y, z}, Mesh -> None, ExclusionsStyle -> {None, Red}, PlotStyle -> Directive[Green, Opacity[0.75`], Specularity[White, 20]], PerformanceGoal -> "Quality"],

  ParametricPlot3D[f[u] + v g[u], {v, -1, 1}, 
   PlotRange -> {-3.2, 3.2}, Axes -> True, AxesLabel -> {x, y, z}, 
   Mesh -> 1, MeshShading -> {Red, Blue}, PlotStyle -> Thick], 
   PerformanceGoal -> "Quality"], {u, 0, 2 \[Pi], Appearance -> "Open"},

  Style[" En Verde vemos la famosa Cinta de Mobius", Darker@Green],
  Style[" También vemos la barra que la genera, al ir girando su \
  centro sobre el plano z=0, a la vez que la barra gira un ángulo de \
 180º. Dicha barra la pintamos de dos colores para ver su \
 orientación", Darker@Gray],
 Style[" La Parte Azul=Parte positiva", Darker@Blue ], 
 Style[" La Parte Roja=Parte Negativa", Darker@Red],
 Style["IMPORTANTE: Fijarse como la barra comienza cabeza arriba, \
 pero, tras completar el movimineto de los 360º, llega cabeza abajo", 
  Darker@Orange],
 Style["Creado y Diseñado por: Rafa", Darker@Blue],
   SaveDefinitions -> True]

$\endgroup$
2
  • 5
    $\begingroup$ Try adding PerformanceGoal -> "Quality" to your ParametricPlot3D $\endgroup$ Commented Jun 4, 2013 at 13:32
  • $\begingroup$ Good solution!! @Simon Woods $\endgroup$
    – Mika Ike
    Commented Jun 4, 2013 at 14:19

2 Answers 2

4
$\begingroup$

The best (most straightforward) way to do this is to generate a table of figures and export the table instead of the Play[] function. That way, each plot will be entirely pre-computed. In dynamic blocks, Mathematica only computes as much as it needs to. It will show a lower-quality version while playing, then increase the quality when it's paused. This is further discussed here:

http://reference.wolfram.com/mathematica/tutorial/AdvancedManipulateFunctionality.html

Just swap your

Play[plot[i],{i,1,limit}];

with

t = Table[plot[i],{i,1,limit,stepsize}];

You can then play through with

Manipulate[t[[i]],{i,1,limit,1}];

or export the table directly with

Export["videofile.avi",t];

Edit: Just to be clear, an example:

t = Table[Plot[Sin[x + a], {x, 0, 2*Pi}], {a, 0, 2*Pi, 0.1}];
Manipulate[t[[i]], {i, 1, Length[t], 1}]
Export["videofile.avi", t];
$\endgroup$
1
  • $\begingroup$ i can´t view the result of this. i obtain a list of plot, but no graphs, that i can view. $\endgroup$
    – Mika Ike
    Commented Jun 5, 2013 at 8:04
3
$\begingroup$

Without seeing the code (is it possible to see the code in a CDF file?), it's not clear where to make the changes. I can't see the slowdown on something similar (I tried to make it complex to slow it down and go blocky but it wouldn't).

Manipulate[
 Show[
  ParametricPlot3D[
   {(2 + s*Cos[a*t])*Cos[t],
    (2 + s*Cos[a*t])*Sin[t],
    s*Sin[a*t]},
   {s, -1, 1},
   {t, 0, 2 \[Pi]},
   Lighting -> "Neutral",
   PlotPoints -> 50,
   ImageSize -> {500, 500},
   Boxed -> False,
   Mesh -> False,
   Axes -> False,
   PlotStyle -> Directive[
     Texture[ExampleData[{"TestImage", "Lena"}]],
     Specularity[1, 20]],
   TextureCoordinateFunction -> ({#1, #2} &),
   PerformanceGoal -> pg
   ],
  Graphics3D[
   {Red, Thick, Line[{
      {(2 + -1 Cos[a*line])*Cos[line],
       (2 + - 1*Cos[a*line])*Sin[line],
       -1*Sin[a*line]},
      {(2 + 1  Cos[a*line])*Cos[line],
       (2 + 1 Cos[a*line])*Sin[line], 
       Sin[a*line]}
      }]}]
  ],
 {{a, 1/2}, 0, 1, .01, Appearance -> "Labeled"},
 {{pg, "Speed"}, {"Speed", "Quality"}},
 {line, 0, 2 Pi},
 ControlPlacement -> Top]

lena one-liner

$\endgroup$
4
  • $\begingroup$ jajaja :-)) very good!!! You are a math-progrmamer-artist1 :-) $\endgroup$
    – Mika Ike
    Commented Jun 4, 2013 at 19:04
  • $\begingroup$ i have edited de first message, and copy the code, @cormullion $\endgroup$
    – Mika Ike
    Commented Jun 4, 2013 at 19:14
  • $\begingroup$ @mika good work! But this question has I think been answered now... $\endgroup$
    – cormullion
    Commented Jun 4, 2013 at 19:34
  • $\begingroup$ @cormulliom Yes, This question has been solved! $\endgroup$
    – Mika Ike
    Commented Jun 5, 2013 at 8:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.