How to visualize a 4-dimensional parametric surface?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
3
down vote

favorite












What are some good ways, using ParametricPlot3D or otherwise, to visualize a surface (taking 2 real parameters) embedded in a 4-dimensional space?



Specifically, the question concerns the embedding of the Klein Bottle in $ mathbb R^4 $ given by



 F[u_, v_] := x[u, v], y[u, v], z[u, v], w[u, v]


where



 x[u_, v_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
y[u_, v_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
z[u_, v_] := p Cos[u] (1 + ϵ Sin[v])
w[u_, v_] := p Sin[u] (1 + ϵ Sin[v])


and the positive constants r, p, and ϵ will take convenient values.










share|improve this question























  • Klein Bottle: Eric Weisstein's notebook from MathWorld
    – kglr
    12 hours ago











  • The documentation of ParametricPlot3D contains some information about "Klein bottle".
    – Î‘λέξανδρος Ζεγγ
    10 hours ago














up vote
3
down vote

favorite












What are some good ways, using ParametricPlot3D or otherwise, to visualize a surface (taking 2 real parameters) embedded in a 4-dimensional space?



Specifically, the question concerns the embedding of the Klein Bottle in $ mathbb R^4 $ given by



 F[u_, v_] := x[u, v], y[u, v], z[u, v], w[u, v]


where



 x[u_, v_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
y[u_, v_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
z[u_, v_] := p Cos[u] (1 + ϵ Sin[v])
w[u_, v_] := p Sin[u] (1 + ϵ Sin[v])


and the positive constants r, p, and ϵ will take convenient values.










share|improve this question























  • Klein Bottle: Eric Weisstein's notebook from MathWorld
    – kglr
    12 hours ago











  • The documentation of ParametricPlot3D contains some information about "Klein bottle".
    – Î‘λέξανδρος Ζεγγ
    10 hours ago












up vote
3
down vote

favorite









up vote
3
down vote

favorite











What are some good ways, using ParametricPlot3D or otherwise, to visualize a surface (taking 2 real parameters) embedded in a 4-dimensional space?



Specifically, the question concerns the embedding of the Klein Bottle in $ mathbb R^4 $ given by



 F[u_, v_] := x[u, v], y[u, v], z[u, v], w[u, v]


where



 x[u_, v_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
y[u_, v_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
z[u_, v_] := p Cos[u] (1 + ϵ Sin[v])
w[u_, v_] := p Sin[u] (1 + ϵ Sin[v])


and the positive constants r, p, and ϵ will take convenient values.










share|improve this question















What are some good ways, using ParametricPlot3D or otherwise, to visualize a surface (taking 2 real parameters) embedded in a 4-dimensional space?



Specifically, the question concerns the embedding of the Klein Bottle in $ mathbb R^4 $ given by



 F[u_, v_] := x[u, v], y[u, v], z[u, v], w[u, v]


where



 x[u_, v_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
y[u_, v_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
z[u_, v_] := p Cos[u] (1 + ϵ Sin[v])
w[u_, v_] := p Sin[u] (1 + ϵ Sin[v])


and the positive constants r, p, and ϵ will take convenient values.







plotting graphics3d visualization parametric-functions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 1 hour ago









J. M. is somewhat okay.♦

92.5k10286440




92.5k10286440










asked 13 hours ago









murray

5,8591634




5,8591634











  • Klein Bottle: Eric Weisstein's notebook from MathWorld
    – kglr
    12 hours ago











  • The documentation of ParametricPlot3D contains some information about "Klein bottle".
    – Î‘λέξανδρος Ζεγγ
    10 hours ago
















  • Klein Bottle: Eric Weisstein's notebook from MathWorld
    – kglr
    12 hours ago











  • The documentation of ParametricPlot3D contains some information about "Klein bottle".
    – Î‘λέξανδρος Ζεγγ
    10 hours ago















Klein Bottle: Eric Weisstein's notebook from MathWorld
– kglr
12 hours ago





Klein Bottle: Eric Weisstein's notebook from MathWorld
– kglr
12 hours ago













The documentation of ParametricPlot3D contains some information about "Klein bottle".
– Î‘λέξανδρος Ζεγγ
10 hours ago




The documentation of ParametricPlot3D contains some information about "Klein bottle".
– Î‘λέξανδρος Ζεγγ
10 hours ago










2 Answers
2






active

oldest

votes

















up vote
4
down vote













A simple minded possibility is to use a perspective projection (similar to what I did here). Applied to the 4D Klein bottle, we have



With[p = 1/3, r = 1/2, ε = -1/3, (* Klein bottle parameters *)
f = 3, d = 1, (* projection parameters *)
k = 3 (* perspective over k-th coordinate *),
ParametricPlot3D[Function[pt, f Delete[pt, k]/(d - Extract[pt, k])] @
r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v]),
r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v]),
p Cos[u] (1 + ε Sin[v]), p Sin[u] (1 + ε Sin[v]),
u, 0, 2 π, v, 0, 2 π,
Mesh -> False, PlotPoints -> 55]]


projection of 4D Klein bottle



In addition to perspective projection, one might want to also apply a preliminary rotation (via e.g. RotationTransform) to the parametric equations before projecting over one of the axes, adding another element of flexibility.






share|improve this answer





























    up vote
    3
    down vote













    There are an infinite number of projections of multidimensional figures on 3D. I will show one variant that is suitable for this case



    F[u_, v_] := x[u, v], y[u, v], z[u, v], t[u, v]
    x[u_, v_, r_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
    y[u_, v_, r_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
    z[u_, v_, p_, [Epsilon]_] := p Cos[u] (1 + [Epsilon] Sin[v])
    t[u_, v_, p_, [Epsilon]_] := p Sin[u] (1 + [Epsilon] Sin[v])

    KleinBottle4D[p_, r_, [Epsilon]_, [Alpha]_] :=
    ParametricPlot3D[x[u, v, r], y[u, v, r],
    Cos[[Alpha]]*z[u, v, p, [Epsilon]] +
    Sin[[Alpha]]*t[u, v, p, [Epsilon]], u, 0, 2*Pi, v, 0, 2*Pi,
    ColorFunction -> Hue, PlotRange -> All, Mesh -> None]
    KleinBottle4D[1/3, 1/2, -1/3, Pi/4]


    fig1






    share|improve this answer




















      Your Answer




      StackExchange.ifUsing("editor", function ()
      return StackExchange.using("mathjaxEditing", function ()
      StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
      StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
      );
      );
      , "mathjax-editing");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "387"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      convertImagesToLinks: false,
      noModals: false,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













       

      draft saved


      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f182436%2fhow-to-visualize-a-4-dimensional-parametric-surface%23new-answer', 'question_page');

      );

      Post as a guest






























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      4
      down vote













      A simple minded possibility is to use a perspective projection (similar to what I did here). Applied to the 4D Klein bottle, we have



      With[p = 1/3, r = 1/2, ε = -1/3, (* Klein bottle parameters *)
      f = 3, d = 1, (* projection parameters *)
      k = 3 (* perspective over k-th coordinate *),
      ParametricPlot3D[Function[pt, f Delete[pt, k]/(d - Extract[pt, k])] @
      r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v]),
      r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v]),
      p Cos[u] (1 + ε Sin[v]), p Sin[u] (1 + ε Sin[v]),
      u, 0, 2 π, v, 0, 2 π,
      Mesh -> False, PlotPoints -> 55]]


      projection of 4D Klein bottle



      In addition to perspective projection, one might want to also apply a preliminary rotation (via e.g. RotationTransform) to the parametric equations before projecting over one of the axes, adding another element of flexibility.






      share|improve this answer


























        up vote
        4
        down vote













        A simple minded possibility is to use a perspective projection (similar to what I did here). Applied to the 4D Klein bottle, we have



        With[p = 1/3, r = 1/2, ε = -1/3, (* Klein bottle parameters *)
        f = 3, d = 1, (* projection parameters *)
        k = 3 (* perspective over k-th coordinate *),
        ParametricPlot3D[Function[pt, f Delete[pt, k]/(d - Extract[pt, k])] @
        r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v]),
        r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v]),
        p Cos[u] (1 + ε Sin[v]), p Sin[u] (1 + ε Sin[v]),
        u, 0, 2 π, v, 0, 2 π,
        Mesh -> False, PlotPoints -> 55]]


        projection of 4D Klein bottle



        In addition to perspective projection, one might want to also apply a preliminary rotation (via e.g. RotationTransform) to the parametric equations before projecting over one of the axes, adding another element of flexibility.






        share|improve this answer
























          up vote
          4
          down vote










          up vote
          4
          down vote









          A simple minded possibility is to use a perspective projection (similar to what I did here). Applied to the 4D Klein bottle, we have



          With[p = 1/3, r = 1/2, ε = -1/3, (* Klein bottle parameters *)
          f = 3, d = 1, (* projection parameters *)
          k = 3 (* perspective over k-th coordinate *),
          ParametricPlot3D[Function[pt, f Delete[pt, k]/(d - Extract[pt, k])] @
          r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v]),
          r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v]),
          p Cos[u] (1 + ε Sin[v]), p Sin[u] (1 + ε Sin[v]),
          u, 0, 2 π, v, 0, 2 π,
          Mesh -> False, PlotPoints -> 55]]


          projection of 4D Klein bottle



          In addition to perspective projection, one might want to also apply a preliminary rotation (via e.g. RotationTransform) to the parametric equations before projecting over one of the axes, adding another element of flexibility.






          share|improve this answer














          A simple minded possibility is to use a perspective projection (similar to what I did here). Applied to the 4D Klein bottle, we have



          With[p = 1/3, r = 1/2, ε = -1/3, (* Klein bottle parameters *)
          f = 3, d = 1, (* projection parameters *)
          k = 3 (* perspective over k-th coordinate *),
          ParametricPlot3D[Function[pt, f Delete[pt, k]/(d - Extract[pt, k])] @
          r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v]),
          r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v]),
          p Cos[u] (1 + ε Sin[v]), p Sin[u] (1 + ε Sin[v]),
          u, 0, 2 π, v, 0, 2 π,
          Mesh -> False, PlotPoints -> 55]]


          projection of 4D Klein bottle



          In addition to perspective projection, one might want to also apply a preliminary rotation (via e.g. RotationTransform) to the parametric equations before projecting over one of the axes, adding another element of flexibility.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 49 mins ago

























          answered 1 hour ago









          J. M. is somewhat okay.♦

          92.5k10286440




          92.5k10286440




















              up vote
              3
              down vote













              There are an infinite number of projections of multidimensional figures on 3D. I will show one variant that is suitable for this case



              F[u_, v_] := x[u, v], y[u, v], z[u, v], t[u, v]
              x[u_, v_, r_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
              y[u_, v_, r_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
              z[u_, v_, p_, [Epsilon]_] := p Cos[u] (1 + [Epsilon] Sin[v])
              t[u_, v_, p_, [Epsilon]_] := p Sin[u] (1 + [Epsilon] Sin[v])

              KleinBottle4D[p_, r_, [Epsilon]_, [Alpha]_] :=
              ParametricPlot3D[x[u, v, r], y[u, v, r],
              Cos[[Alpha]]*z[u, v, p, [Epsilon]] +
              Sin[[Alpha]]*t[u, v, p, [Epsilon]], u, 0, 2*Pi, v, 0, 2*Pi,
              ColorFunction -> Hue, PlotRange -> All, Mesh -> None]
              KleinBottle4D[1/3, 1/2, -1/3, Pi/4]


              fig1






              share|improve this answer
























                up vote
                3
                down vote













                There are an infinite number of projections of multidimensional figures on 3D. I will show one variant that is suitable for this case



                F[u_, v_] := x[u, v], y[u, v], z[u, v], t[u, v]
                x[u_, v_, r_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
                y[u_, v_, r_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
                z[u_, v_, p_, [Epsilon]_] := p Cos[u] (1 + [Epsilon] Sin[v])
                t[u_, v_, p_, [Epsilon]_] := p Sin[u] (1 + [Epsilon] Sin[v])

                KleinBottle4D[p_, r_, [Epsilon]_, [Alpha]_] :=
                ParametricPlot3D[x[u, v, r], y[u, v, r],
                Cos[[Alpha]]*z[u, v, p, [Epsilon]] +
                Sin[[Alpha]]*t[u, v, p, [Epsilon]], u, 0, 2*Pi, v, 0, 2*Pi,
                ColorFunction -> Hue, PlotRange -> All, Mesh -> None]
                KleinBottle4D[1/3, 1/2, -1/3, Pi/4]


                fig1






                share|improve this answer






















                  up vote
                  3
                  down vote










                  up vote
                  3
                  down vote









                  There are an infinite number of projections of multidimensional figures on 3D. I will show one variant that is suitable for this case



                  F[u_, v_] := x[u, v], y[u, v], z[u, v], t[u, v]
                  x[u_, v_, r_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
                  y[u_, v_, r_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
                  z[u_, v_, p_, [Epsilon]_] := p Cos[u] (1 + [Epsilon] Sin[v])
                  t[u_, v_, p_, [Epsilon]_] := p Sin[u] (1 + [Epsilon] Sin[v])

                  KleinBottle4D[p_, r_, [Epsilon]_, [Alpha]_] :=
                  ParametricPlot3D[x[u, v, r], y[u, v, r],
                  Cos[[Alpha]]*z[u, v, p, [Epsilon]] +
                  Sin[[Alpha]]*t[u, v, p, [Epsilon]], u, 0, 2*Pi, v, 0, 2*Pi,
                  ColorFunction -> Hue, PlotRange -> All, Mesh -> None]
                  KleinBottle4D[1/3, 1/2, -1/3, Pi/4]


                  fig1






                  share|improve this answer












                  There are an infinite number of projections of multidimensional figures on 3D. I will show one variant that is suitable for this case



                  F[u_, v_] := x[u, v], y[u, v], z[u, v], t[u, v]
                  x[u_, v_, r_] := r (Cos[u/2] Cos[v] - Sin[u/2] Sin[2 v])
                  y[u_, v_, r_] := r (Sin[u/2] Cos[v] + Cos[u/2] Sin[2 v])
                  z[u_, v_, p_, [Epsilon]_] := p Cos[u] (1 + [Epsilon] Sin[v])
                  t[u_, v_, p_, [Epsilon]_] := p Sin[u] (1 + [Epsilon] Sin[v])

                  KleinBottle4D[p_, r_, [Epsilon]_, [Alpha]_] :=
                  ParametricPlot3D[x[u, v, r], y[u, v, r],
                  Cos[[Alpha]]*z[u, v, p, [Epsilon]] +
                  Sin[[Alpha]]*t[u, v, p, [Epsilon]], u, 0, 2*Pi, v, 0, 2*Pi,
                  ColorFunction -> Hue, PlotRange -> All, Mesh -> None]
                  KleinBottle4D[1/3, 1/2, -1/3, Pi/4]


                  fig1







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 8 hours ago









                  Alex Trounev

                  2,19729




                  2,19729



























                       

                      draft saved


                      draft discarded















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f182436%2fhow-to-visualize-a-4-dimensional-parametric-surface%23new-answer', 'question_page');

                      );

                      Post as a guest













































































                      Comments

                      Popular posts from this blog

                      List of Gilmore Girls characters

                      What does second last employer means? [closed]

                      One-line joke