-1
$\begingroup$

How to make an animation of following gif by using Mathematica?

enter image description here

$\endgroup$
1
  • 2
    $\begingroup$ Which features of this example are essential to consider an answer a good one? $\endgroup$
    – Kuba
    Commented Sep 28, 2016 at 12:06

1 Answer 1

12
$\begingroup$

You can use the new RandomPoint- function to sample points from a sphere and use the second argument of Text to position some text in 3D. Text will automatically make the string face towards the viewer/camera for you.

pts = RandomPoint[Sphere[{0, 0, 0}], 100];
Text["test", #] & /@ pts // Graphics3D[#, SphericalRegion -> True, Boxed -> False] &

gif


Another approach is instead of rotating the entire graphic (as done above) to rotate the points themselves via RotationTransform. This enables the use of coordinate dependent color and size. An appropriate transformation could be

r[angle_?NumericQ, pivot : {_, _}] := RotationTransform[angle Degree, pivot];

and can be used as follows to archive something closer to what you are looking for with color and size scaling done in respect to the y-coordinate

Graphics3D[(Style[Text["test", #], FontSize -> 14 - 5*(#[[2]] + 1), 
FontColor -> Blend[{Black, White}, #[[2]]]] & /@ 
r[0, {{0, 0.2, 1}, {1, 0, 0}}] /@ pts), BoxRatios -> {1, 1, 1}, 
Boxed -> True, Axes-> True, AxesLabel -> {"x", "y", "z"}]

picture2

This can be animated for instance like this

Animate[Graphics3D[(Style[Text["test", #], 
FontSize -> 14 - 5*(#[[2]] + 1), 
FontColor -> Blend[{Black, White}, #[[2]]]] & /@ 
r[angle, {{0, 0, 1}, {0.2, -1, 0}}] /@ pts), 
BoxRatios -> {1, 1, 1}, SphericalRegion -> True, Boxed -> False, 
ViewPoint -> Front], {angle, 0, 360}]

final result

To archive your desired look you might have to play around a bit with the color- and size scaling

$\endgroup$
8
  • $\begingroup$ Haha, I got that far. Now how to make it smaller and more transparent the further away it is? $\endgroup$ Commented Sep 28, 2016 at 11:55
  • $\begingroup$ @Quantum_Oli and Sascha, there is a better one but this one is also related to that problem: 55174 $\endgroup$
    – Kuba
    Commented Sep 28, 2016 at 12:07
  • $\begingroup$ but I need to rotate graphic without click on. $\endgroup$
    – vito
    Commented Sep 28, 2016 at 12:24
  • $\begingroup$ @Kuba I remember seeing that one the other day and it crossed my mind when reading this question. However I think even if one has a sphere (or ball) in place with the correct transparency options, the Text objects ignore it and are always drawn on top. I briefly wondered about converting the Text to FilledCurves to attempt to circumvent this but I don't think Graphics3D accepts FilledCurves. $\endgroup$ Commented Sep 28, 2016 at 12:29
  • 1
    $\begingroup$ Going for the Reversal age? Good luck. $\endgroup$
    – m_goldberg
    Commented Sep 28, 2016 at 13:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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