Advertisement
Guest User

orthogonal sine waves

a guest
Apr 26th, 2020
687
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. smoothstep[t_, t0_, t1_] :=
  2. With[{tt = (t - t0)/(t1 - t0)},
  3. If[tt < 0, 0, If[tt > 1, 1, 6 tt^5 - 15 tt^4 + 10 tt^3]]];
  4. smoothstepI[t_, t0_, t1_] :=
  5. If[(t - t0) (t0 - t1) > 0, 0,
  6. If[(t - t1) (-t0 + t1) > 0,
  7. 1/2 (2 (t - t1) + t1 -
  8. t0), -(((t - t0)^4 (2 t^2 + t0^2 + 2 t (t0 - 3 t1) - 4 t0 t1 +
  9. 5 t1^2))/(2 (t0 - t1)^5))]];
  10.  
  11. dy = 0.1;
  12. thickness = 0.05;
  13. dt[\[Omega]1_, \[Omega]2_] :=
  14. 0.2/(2 \[Pi] Sqrt[\[Omega]1^2 + \[Omega]2^2]);
  15. fig[\[Omega]1_, \[Omega]2_, t_] := (
  16. {
  17. White,
  18. Thickness[0.01],
  19. {Opacity[0.8],
  20. If[\[Omega]1 \[Omega]2 != 0,
  21. Line[
  22. If[t < 1,
  23. Table[
  24. {Sin[-2 Pi \[Omega]2 tt], Cos[2 Pi \[Omega]2 tt]} Cos[
  25. 2 Pi \[Omega]1 tt],
  26. {tt, 0, t, dt[\[Omega]1, \[Omega]2]}
  27. ],
  28. Table[
  29. {Sin[-2 Pi \[Omega]2 tt], Cos[2 Pi \[Omega]2 tt]} Cos[
  30. 2 Pi \[Omega]1 tt],
  31. {tt, 1, t - 1, -dt[\[Omega]1, \[Omega]2]}
  32. ]
  33. ]
  34. ]
  35. ]
  36. },
  37. GeometricTransformation[
  38. {
  39. EdgeForm[],
  40. Table[
  41. {
  42. Lighter@ColorData["SolarColors"][1. - Abs[Sin[Pi y/2]]],
  43. Rectangle[{-thickness, y - 0.01}, {thickness, y + dy}]
  44. },
  45. {y, -1., 1 - dy, dy}
  46. ],
  47. White,
  48. EdgeForm[Directive[Thickness[0.006], Black]],
  49. Disk[{0, Cos[2 Pi \[Omega]1 t]}, 4 thickness]
  50. },
  51. RotationTransform[2 Pi \[Omega]2 t, {0, 0}]
  52. ]
  53. }
  54. );
  55. frame[t_] := (
  56. Show[
  57. Graphics[{
  58. White,
  59. Table[
  60. GeometricTransformation[
  61. fig[\[Omega]1, \[Omega]2, t],
  62. TranslationTransform[{\[Omega]1, \
  63. -\[Omega]2}].ScalingTransform[0.4 {1, 1}]
  64. ],
  65. {\[Omega]1, 0, 5},
  66. {\[Omega]2, 0, 5}
  67. ]
  68. }
  69. ],
  70. PlotRange -> {{-1, 6}, {-6, 1}},
  71. Boxed -> False, Axes -> None,
  72. Background -> Black,
  73. ImageSize -> 320
  74. ]
  75. );
  76. Manipulate[
  77. frame[t],
  78. {{t, 0.248}, 0, 2}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement