Affine transformation of circular arc in 3D












5












$begingroup$


Start with a quarter-circle of radius 1 centered at the origin and lying in the xz-plane:



 arc = ParametricPlot3D[{Cos[t], 0, Sin[t]]}, {t, 0, π/2}]


I want to dilate this by a factor of 2 and shift the center to {3, 0, 0}, then show the result graphically.



The following does not work:



shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}]

Graphics3D[GeometricTransformation[arc3D, shiftAndDilate3D]]


The error I get is that "Graphics3DBox is not a Graphics3D primitive or directive."



What am I doing wrong?










share|improve this question











$endgroup$

















    5












    $begingroup$


    Start with a quarter-circle of radius 1 centered at the origin and lying in the xz-plane:



     arc = ParametricPlot3D[{Cos[t], 0, Sin[t]]}, {t, 0, π/2}]


    I want to dilate this by a factor of 2 and shift the center to {3, 0, 0}, then show the result graphically.



    The following does not work:



    shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}]

    Graphics3D[GeometricTransformation[arc3D, shiftAndDilate3D]]


    The error I get is that "Graphics3DBox is not a Graphics3D primitive or directive."



    What am I doing wrong?










    share|improve this question











    $endgroup$















      5












      5








      5





      $begingroup$


      Start with a quarter-circle of radius 1 centered at the origin and lying in the xz-plane:



       arc = ParametricPlot3D[{Cos[t], 0, Sin[t]]}, {t, 0, π/2}]


      I want to dilate this by a factor of 2 and shift the center to {3, 0, 0}, then show the result graphically.



      The following does not work:



      shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}]

      Graphics3D[GeometricTransformation[arc3D, shiftAndDilate3D]]


      The error I get is that "Graphics3DBox is not a Graphics3D primitive or directive."



      What am I doing wrong?










      share|improve this question











      $endgroup$




      Start with a quarter-circle of radius 1 centered at the origin and lying in the xz-plane:



       arc = ParametricPlot3D[{Cos[t], 0, Sin[t]]}, {t, 0, π/2}]


      I want to dilate this by a factor of 2 and shift the center to {3, 0, 0}, then show the result graphically.



      The following does not work:



      shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}]

      Graphics3D[GeometricTransformation[arc3D, shiftAndDilate3D]]


      The error I get is that "Graphics3DBox is not a Graphics3D primitive or directive."



      What am I doing wrong?







      graphics3d geometric-transform






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 5 hours ago









      MarcoB

      36.9k556113




      36.9k556113










      asked 5 hours ago









      murraymurray

      6,1981835




      6,1981835






















          3 Answers
          3






          active

          oldest

          votes


















          5












          $begingroup$

          You could work with regions instead. Your arc:



          arc = ParametricRegion[{Cos[t], 0, Sin[t]}, {{t, 0, [Pi]/2}}];


          The transformed arc:



          shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}];
          new = TransformedRegion[arc, shiftAndDilate3D];


          Visualization:



          Show[
          Region[arc, BaseStyle->Red],
          Region[new, BaseStyle->Blue],
          Axes->True
          ]


          enter image description here






          share|improve this answer









          $endgroup$













          • $begingroup$
            How should one know from the Mathematica documentation that ParametricRegion is a "region" suitable for the 1st argument to TransformedRegion? (The documentation involving GeometricTransformatino, Region, etc., is sadly deficient. As with Image, these things seem to have been thrown into Mathematica without sufficient exposition, or perhaps even without sufficient coherence for the various kinds of things, on the one hand, and sufficient distinctions among them, on the other hand.)
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            On the one hand, I like this answer better than the others because it is more direct. On the other hand, it uses yet a different type of object, namely, a "region".
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            But I'm annoyed by the different method to style the resulting graphics display, namely, through use of the BaseStyle option of Region instead of the usual PlotStyle option of ParametricPlot3D and so many other graphics and graphics 3D functions. Moreover, why should it be necessary to wrap the result of a ParametricRegion expression with a Region? Either there's something fundamental here I don't understand, or else a whole slew of graphics-like or geometric-like constructs have been thrown into recent versions of Mathematica without sufficient rationalization of the whole domain.
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            Further rant: Why does ParametricRegion take as 2nd argument a list of lists (of parameters and their extent), whereas ParametricPlot3D uses the parameter information as a list, then another list, etc.?
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            @murray Lots of questions. For a brief overview of regions, see reference.wolfram.com/language/guide/GeometricComputation. Basically, a region is a computable object. Region is a function that displays the object (similar to RegionPlot). Show converts a region object to a Graphics/Graphics3D object. ParametricRegion has a different syntax because it supports arguments without bounds, e.g., ParametricRegion[{Cos[t], 0, Sin[t]}, t].
            $endgroup$
            – Carl Woll
            1 hour ago



















          5












          $begingroup$

          You cannot apply those geometric transformations to the results of the plotting; instead, you should apply them to a Graphics primitive, e.g. the Line object generated by ParametricPlot, which you can extract using e.g. Cases:



          arcLine = 
          First@Cases[ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}], _Line, All]

          Graphics3D[{
          Red, arcLine,
          Blue, GeometricTransformation[arcLine, shiftAndDilate3D]
          }]


          Mathematica graphics



          In red in the plot above is your original curve, in blue the transformed one.






          share|improve this answer











          $endgroup$













          • $begingroup$
            Where in the documentation does it explain what is, and what is not, a "geometric object"?
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray I was being loose with words there. I really meant a "Graphics primitive", such as those discussed in this guide: Graphics objects. I fixed it in the answer.
            $endgroup$
            – MarcoB
            3 hours ago










          • $begingroup$
            Alas, the doc page guide/GraphicsObjects does not fully identify or clarify what is, and what is not, a "graphics object". For example, given the answer by Carl Woll to my question, a ParametricRegion seems to qualify as such an object, yet is not listed on that guide page. So the documentation list of graphics objects doesn't specify what they are, and certainly -- and this is perhaps a real design defect -- the Head of these objects doesn't tell you that they are "graphics objects"!
            $endgroup$
            – murray
            2 hours ago



















          4












          $begingroup$

          Use arc3D[[1]] (which contains all the graphics primitives and their styles) as the first argument of GeometricTransformation:



          arc3D = ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}]
          Show[arc3D,
          Graphics3D[GeometricTransformation[arc3D[[1]], shiftAndDilate3D] /. l_Line :> {Orange, l}],
          PlotRange -> All]


          enter image description here






          share|improve this answer











          $endgroup$













          • $begingroup$
            I cannot reproduce that. Rather, I get an error message: "An improperly formatted option was encountered while reading a Graphics3DBox. The left-hand side of the option was not a symbol or string."
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray, forgot a comma before PlotRange (fixed now).
            $endgroup$
            – kglr
            4 hours ago










          • $begingroup$
            Sorry, I should have caught that!
            $endgroup$
            – murray
            2 hours ago











          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',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          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%2f192809%2faffine-transformation-of-circular-arc-in-3d%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          3 Answers
          3






          active

          oldest

          votes








          3 Answers
          3






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          5












          $begingroup$

          You could work with regions instead. Your arc:



          arc = ParametricRegion[{Cos[t], 0, Sin[t]}, {{t, 0, [Pi]/2}}];


          The transformed arc:



          shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}];
          new = TransformedRegion[arc, shiftAndDilate3D];


          Visualization:



          Show[
          Region[arc, BaseStyle->Red],
          Region[new, BaseStyle->Blue],
          Axes->True
          ]


          enter image description here






          share|improve this answer









          $endgroup$













          • $begingroup$
            How should one know from the Mathematica documentation that ParametricRegion is a "region" suitable for the 1st argument to TransformedRegion? (The documentation involving GeometricTransformatino, Region, etc., is sadly deficient. As with Image, these things seem to have been thrown into Mathematica without sufficient exposition, or perhaps even without sufficient coherence for the various kinds of things, on the one hand, and sufficient distinctions among them, on the other hand.)
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            On the one hand, I like this answer better than the others because it is more direct. On the other hand, it uses yet a different type of object, namely, a "region".
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            But I'm annoyed by the different method to style the resulting graphics display, namely, through use of the BaseStyle option of Region instead of the usual PlotStyle option of ParametricPlot3D and so many other graphics and graphics 3D functions. Moreover, why should it be necessary to wrap the result of a ParametricRegion expression with a Region? Either there's something fundamental here I don't understand, or else a whole slew of graphics-like or geometric-like constructs have been thrown into recent versions of Mathematica without sufficient rationalization of the whole domain.
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            Further rant: Why does ParametricRegion take as 2nd argument a list of lists (of parameters and their extent), whereas ParametricPlot3D uses the parameter information as a list, then another list, etc.?
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            @murray Lots of questions. For a brief overview of regions, see reference.wolfram.com/language/guide/GeometricComputation. Basically, a region is a computable object. Region is a function that displays the object (similar to RegionPlot). Show converts a region object to a Graphics/Graphics3D object. ParametricRegion has a different syntax because it supports arguments without bounds, e.g., ParametricRegion[{Cos[t], 0, Sin[t]}, t].
            $endgroup$
            – Carl Woll
            1 hour ago
















          5












          $begingroup$

          You could work with regions instead. Your arc:



          arc = ParametricRegion[{Cos[t], 0, Sin[t]}, {{t, 0, [Pi]/2}}];


          The transformed arc:



          shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}];
          new = TransformedRegion[arc, shiftAndDilate3D];


          Visualization:



          Show[
          Region[arc, BaseStyle->Red],
          Region[new, BaseStyle->Blue],
          Axes->True
          ]


          enter image description here






          share|improve this answer









          $endgroup$













          • $begingroup$
            How should one know from the Mathematica documentation that ParametricRegion is a "region" suitable for the 1st argument to TransformedRegion? (The documentation involving GeometricTransformatino, Region, etc., is sadly deficient. As with Image, these things seem to have been thrown into Mathematica without sufficient exposition, or perhaps even without sufficient coherence for the various kinds of things, on the one hand, and sufficient distinctions among them, on the other hand.)
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            On the one hand, I like this answer better than the others because it is more direct. On the other hand, it uses yet a different type of object, namely, a "region".
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            But I'm annoyed by the different method to style the resulting graphics display, namely, through use of the BaseStyle option of Region instead of the usual PlotStyle option of ParametricPlot3D and so many other graphics and graphics 3D functions. Moreover, why should it be necessary to wrap the result of a ParametricRegion expression with a Region? Either there's something fundamental here I don't understand, or else a whole slew of graphics-like or geometric-like constructs have been thrown into recent versions of Mathematica without sufficient rationalization of the whole domain.
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            Further rant: Why does ParametricRegion take as 2nd argument a list of lists (of parameters and their extent), whereas ParametricPlot3D uses the parameter information as a list, then another list, etc.?
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            @murray Lots of questions. For a brief overview of regions, see reference.wolfram.com/language/guide/GeometricComputation. Basically, a region is a computable object. Region is a function that displays the object (similar to RegionPlot). Show converts a region object to a Graphics/Graphics3D object. ParametricRegion has a different syntax because it supports arguments without bounds, e.g., ParametricRegion[{Cos[t], 0, Sin[t]}, t].
            $endgroup$
            – Carl Woll
            1 hour ago














          5












          5








          5





          $begingroup$

          You could work with regions instead. Your arc:



          arc = ParametricRegion[{Cos[t], 0, Sin[t]}, {{t, 0, [Pi]/2}}];


          The transformed arc:



          shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}];
          new = TransformedRegion[arc, shiftAndDilate3D];


          Visualization:



          Show[
          Region[arc, BaseStyle->Red],
          Region[new, BaseStyle->Blue],
          Axes->True
          ]


          enter image description here






          share|improve this answer









          $endgroup$



          You could work with regions instead. Your arc:



          arc = ParametricRegion[{Cos[t], 0, Sin[t]}, {{t, 0, [Pi]/2}}];


          The transformed arc:



          shiftAndDilate3D = AffineTransform[{2 IdentityMatrix[3], {3, 0, 0}}];
          new = TransformedRegion[arc, shiftAndDilate3D];


          Visualization:



          Show[
          Region[arc, BaseStyle->Red],
          Region[new, BaseStyle->Blue],
          Axes->True
          ]


          enter image description here







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 5 hours ago









          Carl WollCarl Woll

          69.4k393179




          69.4k393179












          • $begingroup$
            How should one know from the Mathematica documentation that ParametricRegion is a "region" suitable for the 1st argument to TransformedRegion? (The documentation involving GeometricTransformatino, Region, etc., is sadly deficient. As with Image, these things seem to have been thrown into Mathematica without sufficient exposition, or perhaps even without sufficient coherence for the various kinds of things, on the one hand, and sufficient distinctions among them, on the other hand.)
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            On the one hand, I like this answer better than the others because it is more direct. On the other hand, it uses yet a different type of object, namely, a "region".
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            But I'm annoyed by the different method to style the resulting graphics display, namely, through use of the BaseStyle option of Region instead of the usual PlotStyle option of ParametricPlot3D and so many other graphics and graphics 3D functions. Moreover, why should it be necessary to wrap the result of a ParametricRegion expression with a Region? Either there's something fundamental here I don't understand, or else a whole slew of graphics-like or geometric-like constructs have been thrown into recent versions of Mathematica without sufficient rationalization of the whole domain.
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            Further rant: Why does ParametricRegion take as 2nd argument a list of lists (of parameters and their extent), whereas ParametricPlot3D uses the parameter information as a list, then another list, etc.?
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            @murray Lots of questions. For a brief overview of regions, see reference.wolfram.com/language/guide/GeometricComputation. Basically, a region is a computable object. Region is a function that displays the object (similar to RegionPlot). Show converts a region object to a Graphics/Graphics3D object. ParametricRegion has a different syntax because it supports arguments without bounds, e.g., ParametricRegion[{Cos[t], 0, Sin[t]}, t].
            $endgroup$
            – Carl Woll
            1 hour ago


















          • $begingroup$
            How should one know from the Mathematica documentation that ParametricRegion is a "region" suitable for the 1st argument to TransformedRegion? (The documentation involving GeometricTransformatino, Region, etc., is sadly deficient. As with Image, these things seem to have been thrown into Mathematica without sufficient exposition, or perhaps even without sufficient coherence for the various kinds of things, on the one hand, and sufficient distinctions among them, on the other hand.)
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            On the one hand, I like this answer better than the others because it is more direct. On the other hand, it uses yet a different type of object, namely, a "region".
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            But I'm annoyed by the different method to style the resulting graphics display, namely, through use of the BaseStyle option of Region instead of the usual PlotStyle option of ParametricPlot3D and so many other graphics and graphics 3D functions. Moreover, why should it be necessary to wrap the result of a ParametricRegion expression with a Region? Either there's something fundamental here I don't understand, or else a whole slew of graphics-like or geometric-like constructs have been thrown into recent versions of Mathematica without sufficient rationalization of the whole domain.
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            Further rant: Why does ParametricRegion take as 2nd argument a list of lists (of parameters and their extent), whereas ParametricPlot3D uses the parameter information as a list, then another list, etc.?
            $endgroup$
            – murray
            1 hour ago










          • $begingroup$
            @murray Lots of questions. For a brief overview of regions, see reference.wolfram.com/language/guide/GeometricComputation. Basically, a region is a computable object. Region is a function that displays the object (similar to RegionPlot). Show converts a region object to a Graphics/Graphics3D object. ParametricRegion has a different syntax because it supports arguments without bounds, e.g., ParametricRegion[{Cos[t], 0, Sin[t]}, t].
            $endgroup$
            – Carl Woll
            1 hour ago
















          $begingroup$
          How should one know from the Mathematica documentation that ParametricRegion is a "region" suitable for the 1st argument to TransformedRegion? (The documentation involving GeometricTransformatino, Region, etc., is sadly deficient. As with Image, these things seem to have been thrown into Mathematica without sufficient exposition, or perhaps even without sufficient coherence for the various kinds of things, on the one hand, and sufficient distinctions among them, on the other hand.)
          $endgroup$
          – murray
          1 hour ago




          $begingroup$
          How should one know from the Mathematica documentation that ParametricRegion is a "region" suitable for the 1st argument to TransformedRegion? (The documentation involving GeometricTransformatino, Region, etc., is sadly deficient. As with Image, these things seem to have been thrown into Mathematica without sufficient exposition, or perhaps even without sufficient coherence for the various kinds of things, on the one hand, and sufficient distinctions among them, on the other hand.)
          $endgroup$
          – murray
          1 hour ago












          $begingroup$
          On the one hand, I like this answer better than the others because it is more direct. On the other hand, it uses yet a different type of object, namely, a "region".
          $endgroup$
          – murray
          1 hour ago




          $begingroup$
          On the one hand, I like this answer better than the others because it is more direct. On the other hand, it uses yet a different type of object, namely, a "region".
          $endgroup$
          – murray
          1 hour ago












          $begingroup$
          But I'm annoyed by the different method to style the resulting graphics display, namely, through use of the BaseStyle option of Region instead of the usual PlotStyle option of ParametricPlot3D and so many other graphics and graphics 3D functions. Moreover, why should it be necessary to wrap the result of a ParametricRegion expression with a Region? Either there's something fundamental here I don't understand, or else a whole slew of graphics-like or geometric-like constructs have been thrown into recent versions of Mathematica without sufficient rationalization of the whole domain.
          $endgroup$
          – murray
          1 hour ago




          $begingroup$
          But I'm annoyed by the different method to style the resulting graphics display, namely, through use of the BaseStyle option of Region instead of the usual PlotStyle option of ParametricPlot3D and so many other graphics and graphics 3D functions. Moreover, why should it be necessary to wrap the result of a ParametricRegion expression with a Region? Either there's something fundamental here I don't understand, or else a whole slew of graphics-like or geometric-like constructs have been thrown into recent versions of Mathematica without sufficient rationalization of the whole domain.
          $endgroup$
          – murray
          1 hour ago












          $begingroup$
          Further rant: Why does ParametricRegion take as 2nd argument a list of lists (of parameters and their extent), whereas ParametricPlot3D uses the parameter information as a list, then another list, etc.?
          $endgroup$
          – murray
          1 hour ago




          $begingroup$
          Further rant: Why does ParametricRegion take as 2nd argument a list of lists (of parameters and their extent), whereas ParametricPlot3D uses the parameter information as a list, then another list, etc.?
          $endgroup$
          – murray
          1 hour ago












          $begingroup$
          @murray Lots of questions. For a brief overview of regions, see reference.wolfram.com/language/guide/GeometricComputation. Basically, a region is a computable object. Region is a function that displays the object (similar to RegionPlot). Show converts a region object to a Graphics/Graphics3D object. ParametricRegion has a different syntax because it supports arguments without bounds, e.g., ParametricRegion[{Cos[t], 0, Sin[t]}, t].
          $endgroup$
          – Carl Woll
          1 hour ago




          $begingroup$
          @murray Lots of questions. For a brief overview of regions, see reference.wolfram.com/language/guide/GeometricComputation. Basically, a region is a computable object. Region is a function that displays the object (similar to RegionPlot). Show converts a region object to a Graphics/Graphics3D object. ParametricRegion has a different syntax because it supports arguments without bounds, e.g., ParametricRegion[{Cos[t], 0, Sin[t]}, t].
          $endgroup$
          – Carl Woll
          1 hour ago











          5












          $begingroup$

          You cannot apply those geometric transformations to the results of the plotting; instead, you should apply them to a Graphics primitive, e.g. the Line object generated by ParametricPlot, which you can extract using e.g. Cases:



          arcLine = 
          First@Cases[ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}], _Line, All]

          Graphics3D[{
          Red, arcLine,
          Blue, GeometricTransformation[arcLine, shiftAndDilate3D]
          }]


          Mathematica graphics



          In red in the plot above is your original curve, in blue the transformed one.






          share|improve this answer











          $endgroup$













          • $begingroup$
            Where in the documentation does it explain what is, and what is not, a "geometric object"?
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray I was being loose with words there. I really meant a "Graphics primitive", such as those discussed in this guide: Graphics objects. I fixed it in the answer.
            $endgroup$
            – MarcoB
            3 hours ago










          • $begingroup$
            Alas, the doc page guide/GraphicsObjects does not fully identify or clarify what is, and what is not, a "graphics object". For example, given the answer by Carl Woll to my question, a ParametricRegion seems to qualify as such an object, yet is not listed on that guide page. So the documentation list of graphics objects doesn't specify what they are, and certainly -- and this is perhaps a real design defect -- the Head of these objects doesn't tell you that they are "graphics objects"!
            $endgroup$
            – murray
            2 hours ago
















          5












          $begingroup$

          You cannot apply those geometric transformations to the results of the plotting; instead, you should apply them to a Graphics primitive, e.g. the Line object generated by ParametricPlot, which you can extract using e.g. Cases:



          arcLine = 
          First@Cases[ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}], _Line, All]

          Graphics3D[{
          Red, arcLine,
          Blue, GeometricTransformation[arcLine, shiftAndDilate3D]
          }]


          Mathematica graphics



          In red in the plot above is your original curve, in blue the transformed one.






          share|improve this answer











          $endgroup$













          • $begingroup$
            Where in the documentation does it explain what is, and what is not, a "geometric object"?
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray I was being loose with words there. I really meant a "Graphics primitive", such as those discussed in this guide: Graphics objects. I fixed it in the answer.
            $endgroup$
            – MarcoB
            3 hours ago










          • $begingroup$
            Alas, the doc page guide/GraphicsObjects does not fully identify or clarify what is, and what is not, a "graphics object". For example, given the answer by Carl Woll to my question, a ParametricRegion seems to qualify as such an object, yet is not listed on that guide page. So the documentation list of graphics objects doesn't specify what they are, and certainly -- and this is perhaps a real design defect -- the Head of these objects doesn't tell you that they are "graphics objects"!
            $endgroup$
            – murray
            2 hours ago














          5












          5








          5





          $begingroup$

          You cannot apply those geometric transformations to the results of the plotting; instead, you should apply them to a Graphics primitive, e.g. the Line object generated by ParametricPlot, which you can extract using e.g. Cases:



          arcLine = 
          First@Cases[ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}], _Line, All]

          Graphics3D[{
          Red, arcLine,
          Blue, GeometricTransformation[arcLine, shiftAndDilate3D]
          }]


          Mathematica graphics



          In red in the plot above is your original curve, in blue the transformed one.






          share|improve this answer











          $endgroup$



          You cannot apply those geometric transformations to the results of the plotting; instead, you should apply them to a Graphics primitive, e.g. the Line object generated by ParametricPlot, which you can extract using e.g. Cases:



          arcLine = 
          First@Cases[ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}], _Line, All]

          Graphics3D[{
          Red, arcLine,
          Blue, GeometricTransformation[arcLine, shiftAndDilate3D]
          }]


          Mathematica graphics



          In red in the plot above is your original curve, in blue the transformed one.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 4 hours ago

























          answered 5 hours ago









          MarcoBMarcoB

          36.9k556113




          36.9k556113












          • $begingroup$
            Where in the documentation does it explain what is, and what is not, a "geometric object"?
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray I was being loose with words there. I really meant a "Graphics primitive", such as those discussed in this guide: Graphics objects. I fixed it in the answer.
            $endgroup$
            – MarcoB
            3 hours ago










          • $begingroup$
            Alas, the doc page guide/GraphicsObjects does not fully identify or clarify what is, and what is not, a "graphics object". For example, given the answer by Carl Woll to my question, a ParametricRegion seems to qualify as such an object, yet is not listed on that guide page. So the documentation list of graphics objects doesn't specify what they are, and certainly -- and this is perhaps a real design defect -- the Head of these objects doesn't tell you that they are "graphics objects"!
            $endgroup$
            – murray
            2 hours ago


















          • $begingroup$
            Where in the documentation does it explain what is, and what is not, a "geometric object"?
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray I was being loose with words there. I really meant a "Graphics primitive", such as those discussed in this guide: Graphics objects. I fixed it in the answer.
            $endgroup$
            – MarcoB
            3 hours ago










          • $begingroup$
            Alas, the doc page guide/GraphicsObjects does not fully identify or clarify what is, and what is not, a "graphics object". For example, given the answer by Carl Woll to my question, a ParametricRegion seems to qualify as such an object, yet is not listed on that guide page. So the documentation list of graphics objects doesn't specify what they are, and certainly -- and this is perhaps a real design defect -- the Head of these objects doesn't tell you that they are "graphics objects"!
            $endgroup$
            – murray
            2 hours ago
















          $begingroup$
          Where in the documentation does it explain what is, and what is not, a "geometric object"?
          $endgroup$
          – murray
          4 hours ago




          $begingroup$
          Where in the documentation does it explain what is, and what is not, a "geometric object"?
          $endgroup$
          – murray
          4 hours ago












          $begingroup$
          @murray I was being loose with words there. I really meant a "Graphics primitive", such as those discussed in this guide: Graphics objects. I fixed it in the answer.
          $endgroup$
          – MarcoB
          3 hours ago




          $begingroup$
          @murray I was being loose with words there. I really meant a "Graphics primitive", such as those discussed in this guide: Graphics objects. I fixed it in the answer.
          $endgroup$
          – MarcoB
          3 hours ago












          $begingroup$
          Alas, the doc page guide/GraphicsObjects does not fully identify or clarify what is, and what is not, a "graphics object". For example, given the answer by Carl Woll to my question, a ParametricRegion seems to qualify as such an object, yet is not listed on that guide page. So the documentation list of graphics objects doesn't specify what they are, and certainly -- and this is perhaps a real design defect -- the Head of these objects doesn't tell you that they are "graphics objects"!
          $endgroup$
          – murray
          2 hours ago




          $begingroup$
          Alas, the doc page guide/GraphicsObjects does not fully identify or clarify what is, and what is not, a "graphics object". For example, given the answer by Carl Woll to my question, a ParametricRegion seems to qualify as such an object, yet is not listed on that guide page. So the documentation list of graphics objects doesn't specify what they are, and certainly -- and this is perhaps a real design defect -- the Head of these objects doesn't tell you that they are "graphics objects"!
          $endgroup$
          – murray
          2 hours ago











          4












          $begingroup$

          Use arc3D[[1]] (which contains all the graphics primitives and their styles) as the first argument of GeometricTransformation:



          arc3D = ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}]
          Show[arc3D,
          Graphics3D[GeometricTransformation[arc3D[[1]], shiftAndDilate3D] /. l_Line :> {Orange, l}],
          PlotRange -> All]


          enter image description here






          share|improve this answer











          $endgroup$













          • $begingroup$
            I cannot reproduce that. Rather, I get an error message: "An improperly formatted option was encountered while reading a Graphics3DBox. The left-hand side of the option was not a symbol or string."
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray, forgot a comma before PlotRange (fixed now).
            $endgroup$
            – kglr
            4 hours ago










          • $begingroup$
            Sorry, I should have caught that!
            $endgroup$
            – murray
            2 hours ago
















          4












          $begingroup$

          Use arc3D[[1]] (which contains all the graphics primitives and their styles) as the first argument of GeometricTransformation:



          arc3D = ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}]
          Show[arc3D,
          Graphics3D[GeometricTransformation[arc3D[[1]], shiftAndDilate3D] /. l_Line :> {Orange, l}],
          PlotRange -> All]


          enter image description here






          share|improve this answer











          $endgroup$













          • $begingroup$
            I cannot reproduce that. Rather, I get an error message: "An improperly formatted option was encountered while reading a Graphics3DBox. The left-hand side of the option was not a symbol or string."
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray, forgot a comma before PlotRange (fixed now).
            $endgroup$
            – kglr
            4 hours ago










          • $begingroup$
            Sorry, I should have caught that!
            $endgroup$
            – murray
            2 hours ago














          4












          4








          4





          $begingroup$

          Use arc3D[[1]] (which contains all the graphics primitives and their styles) as the first argument of GeometricTransformation:



          arc3D = ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}]
          Show[arc3D,
          Graphics3D[GeometricTransformation[arc3D[[1]], shiftAndDilate3D] /. l_Line :> {Orange, l}],
          PlotRange -> All]


          enter image description here






          share|improve this answer











          $endgroup$



          Use arc3D[[1]] (which contains all the graphics primitives and their styles) as the first argument of GeometricTransformation:



          arc3D = ParametricPlot3D[{Cos[t], 0, Sin[t]}, {t, 0, π/2}]
          Show[arc3D,
          Graphics3D[GeometricTransformation[arc3D[[1]], shiftAndDilate3D] /. l_Line :> {Orange, l}],
          PlotRange -> All]


          enter image description here







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 4 hours ago

























          answered 5 hours ago









          kglrkglr

          187k10203421




          187k10203421












          • $begingroup$
            I cannot reproduce that. Rather, I get an error message: "An improperly formatted option was encountered while reading a Graphics3DBox. The left-hand side of the option was not a symbol or string."
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray, forgot a comma before PlotRange (fixed now).
            $endgroup$
            – kglr
            4 hours ago










          • $begingroup$
            Sorry, I should have caught that!
            $endgroup$
            – murray
            2 hours ago


















          • $begingroup$
            I cannot reproduce that. Rather, I get an error message: "An improperly formatted option was encountered while reading a Graphics3DBox. The left-hand side of the option was not a symbol or string."
            $endgroup$
            – murray
            4 hours ago










          • $begingroup$
            @murray, forgot a comma before PlotRange (fixed now).
            $endgroup$
            – kglr
            4 hours ago










          • $begingroup$
            Sorry, I should have caught that!
            $endgroup$
            – murray
            2 hours ago
















          $begingroup$
          I cannot reproduce that. Rather, I get an error message: "An improperly formatted option was encountered while reading a Graphics3DBox. The left-hand side of the option was not a symbol or string."
          $endgroup$
          – murray
          4 hours ago




          $begingroup$
          I cannot reproduce that. Rather, I get an error message: "An improperly formatted option was encountered while reading a Graphics3DBox. The left-hand side of the option was not a symbol or string."
          $endgroup$
          – murray
          4 hours ago












          $begingroup$
          @murray, forgot a comma before PlotRange (fixed now).
          $endgroup$
          – kglr
          4 hours ago




          $begingroup$
          @murray, forgot a comma before PlotRange (fixed now).
          $endgroup$
          – kglr
          4 hours ago












          $begingroup$
          Sorry, I should have caught that!
          $endgroup$
          – murray
          2 hours ago




          $begingroup$
          Sorry, I should have caught that!
          $endgroup$
          – murray
          2 hours ago


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Mathematica Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f192809%2faffine-transformation-of-circular-arc-in-3d%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Category:香港粉麵

          List *all* the tuples!

          Channel [V]