0
$\begingroup$

I have plotted separately two graphics, and I cannot use show to combine them together because this would disturb the moving pattern. I don't know How to do this. By the way, how to draw another ball rotating the opposite direction in the same picture so that there are two oppositely rotating balls?

Graphics3D[{Sphere[{0, 0, 0}, 1],
  Red, Arrowheads[0.02], Arrow[Tube[{{0, 0, 1.5}, {0, 0, 2}}, 0.04]],
  Blue, Arrowheads[0.01], 
  Arrow[Tube[{{0.3, 0, -1.2}, {0.8, 0, -1.7}}, 0.003]],
  Blue, Arrowheads[0.01], 
  Arrow[Tube[{{-0.3, 0, -1.2}, {-0.8, 0, -1.7}}, 0.003]],
  Blue, Arrowheads[0.01], 
  Arrow[Tube[{{0, 0.3, -1.2}, {0, 0.8, -1.7}}, 0.003]],
  Blue, Arrowheads[0.01], 
  Arrow[Tube[{{0, -0.3, -1.2}, {0, -0.8, -1.7}}, 0.003]],
  Blue, Arrowheads[0.01], 
  Arrow[Tube[{{0.3 Sqrt[2]/2, 0.3 Sqrt[2]/2, -1.2}, {0.8 Sqrt[2]/2, 
      0.8 Sqrt[2]/2, -1.7}}, 0.003]],
  Blue, Arrowheads[0.01], 
  Arrow[Tube[{{-0.3 Sqrt[2]/2, 0.3 Sqrt[2]/2, -1.2}, {-0.8 Sqrt[2]/2, 
      0.8 Sqrt[2]/2, -1.7}}, 0.003]],
  Blue, Arrowheads[0.01], 
  Arrow[Tube[{{0.3 Sqrt[2]/2, -0.3 Sqrt[2]/2, -1.2}, {0.8 Sqrt[2]/
       2, -0.8 Sqrt[2]/2, -1.7}}, 0.003]],
  Blue, Arrowheads[0.01], 
  Arrow[Tube[{{-0.3 Sqrt[2]/2, -0.3 Sqrt[2]/2, -1.2}, {-0.8 Sqrt[2]/
       2, -0.8 Sqrt[2]/2, -1.7}}, 0.003]]}, 
 Lighting -> {{"Directional", 
    RGBColor[0., 0.1, 0.01], {1, 0, 0}}, {"Directional", 
    RGBColor[0.605, 0.2, 0.1], {0.5, 0.5, 0}}, {"Directional", 
    RGBColor[0.61, 0.205, 0.1], {0, 1, 0}}, {"Directional", 
    RGBColor[0.615, 0.21, 0.1], {0.5, -0.5, 0}}, {"Directional", 
    RGBColor[0.62, 0.215, 0.1], {0, -1, 0}}, {"Directional", 
    RGBColor[0.625, 0.22, 0.1], {-0.5, -0.5, 0}}, {"Directional", 
    RGBColor[0.63, 0.225, 0.1], {0, -1, 0}}, {"Directional", 
    RGBColor[0.635, 0.23, 0.1], {0.5, -0.5, 0}}}, Boxed -> False, 
 ViewPoint -> 
  Dynamic[RotationTransform[Clock[{2 \[Pi], 0}, 5], {0, 0, 1}][{1, 0, 
     0}]], PlotRange -> 5, SphericalRegion -> True]

ParametricPlot3D[{x = 1.5 Cos[10 t], y = 1.5 Sin[10 t], 
  z = t}, {t, -1.2, 1.2}]

Following is the one that I don't want. I don't want the spiral curve to move anyway.

Show[Graphics3D[{Sphere[{0, 0, 0}, 1],
   Red, Arrowheads[0.02], Arrow[Tube[{{0, 0, 1.5}, {0, 0, 2}}, 0.04]],
   Blue, Arrowheads[0.01], 
   Arrow[Tube[{{0.3, 0, -1.2}, {0.8, 0, -1.7}}, 0.003]],
   Blue, Arrowheads[0.01], 
   Arrow[Tube[{{-0.3, 0, -1.2}, {-0.8, 0, -1.7}}, 0.003]],
   Blue, Arrowheads[0.01], 
   Arrow[Tube[{{0, 0.3, -1.2}, {0, 0.8, -1.7}}, 0.003]],
   Blue, Arrowheads[0.01], 
   Arrow[Tube[{{0, -0.3, -1.2}, {0, -0.8, -1.7}}, 0.003]],
   Blue, Arrowheads[0.01], 
   Arrow[Tube[{{0.3 Sqrt[2]/2, 0.3 Sqrt[2]/2, -1.2}, {0.8 Sqrt[2]/2, 
       0.8 Sqrt[2]/2, -1.7}}, 0.003]],
   Blue, Arrowheads[0.01], 
   Arrow[Tube[{{-0.3 Sqrt[2]/2, 0.3 Sqrt[2]/2, -1.2}, {-0.8 Sqrt[2]/2,
        0.8 Sqrt[2]/2, -1.7}}, 0.003]],
   Blue, Arrowheads[0.01], 
   Arrow[Tube[{{0.3 Sqrt[2]/2, -0.3 Sqrt[2]/2, -1.2}, {0.8 Sqrt[2]/
        2, -0.8 Sqrt[2]/2, -1.7}}, 0.003]],
   Blue, Arrowheads[0.01], 
   Arrow[Tube[{{-0.3 Sqrt[2]/2, -0.3 Sqrt[2]/2, -1.2}, {-0.8 Sqrt[2]/
        2, -0.8 Sqrt[2]/2, -1.7}}, 0.003]]}, 
  Lighting -> {{"Directional", 
     RGBColor[0., 0.1, 0.01], {1, 0, 0}}, {"Directional", 
     RGBColor[0.605, 0.2, 0.1], {0.5, 0.5, 0}}, {"Directional", 
     RGBColor[0.61, 0.205, 0.1], {0, 1, 0}}, {"Directional", 
     RGBColor[0.615, 0.21, 0.1], {0.5, -0.5, 0}}, {"Directional", 
     RGBColor[0.62, 0.215, 0.1], {0, -1, 0}}, {"Directional", 
     RGBColor[0.625, 0.22, 0.1], {-0.5, -0.5, 0}}, {"Directional", 
     RGBColor[0.63, 0.225, 0.1], {0, -1, 0}}, {"Directional", 
     RGBColor[0.635, 0.23, 0.1], {0.5, -0.5, 0}}}, Boxed -> False, 
  ViewPoint -> 
   Dynamic[RotationTransform[Clock[{2 \[Pi], 0}, 5], {0, 0, 1}][{1, 0,
       0}]], PlotRange -> 5, SphericalRegion -> True], 
 ParametricPlot3D[{x = 1.5 Cos[10 t], y = 1.5 Sin[10 t], 
   z = t}, {t, -1.2, 1.2}]]

enter image description here I want a static spiral curve and a rotating ball on the left with static arrows and an oppositely rotating ball on the right.

$\endgroup$
  • 1
    $\begingroup$ I don't really understand what you want the result to look like, but my guess is that you need to use: Show[Graphics3D[Dynamic[Rotate[{Sphere[...],...Arrow[...],..., },Clock[{0,2pi},5],{0,0,1}],..], ParametricPlot3D[...] ] to rotate the graphics instead of the view point. $\endgroup$ – N.J.Evans Nov 4 '16 at 14:02
  • $\begingroup$ I want a static spiral curve and a rotating ball on the left with static arrows and an oppositely rotating ball on the right. $\endgroup$ – ZHANG Juenjie Nov 4 '16 at 14:09
  • $\begingroup$ How to rotate a ball? $\endgroup$ – ZHANG Juenjie Nov 4 '16 at 14:10
  • 1
    $\begingroup$ Related: Animate a circle “rolling” along a complicated 3D curve. $\endgroup$ – corey979 Nov 4 '16 at 14:18
  • 1
    $\begingroup$ As long as the ball is inside Rotate it is rotating, you just can't see it because it's all the same color. Try adding the latitude function used in the accepted answer on: 98798. $\endgroup$ – N.J.Evans Nov 4 '16 at 14:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.