Advertisement
Guest User

orbits

a guest
Sep 20th, 2014
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.10 KB | None | 0 0
  1. #!/usr/bin/zsh
  2.  
  3. zmodload zsh/mathfunc
  4.  
  5. imgsize=400
  6. pi=$((4*atan(1.0)))
  7. a=149.6
  8. b=147
  9. c=$((sqrt(a*a-b*b)))
  10.  
  11. for ((i=0;i<101;i++)); do
  12.         tg=$((sin(2.0*pi*i/101)/cos(2.0*pi*i/101)))
  13.         xa=$((sqrt(1.0/(1.0/(a*a)+tg*tg/(b*b)))))
  14.         [[ $((2.0*pi*i/101)) < $((pi/2.0)) ||  $((2.0*pi*i/101)) > $((3*pi/2.0)) ]] && xa=$((-xa))
  15.         ya=$((xa*tg))
  16.         xb=$c
  17.         yb=0
  18.         [ -n "$1" ] && {
  19.                 xb=$((c-xa))
  20.                 yb=$((-ya))
  21.                 xa=0
  22.                 ya=0
  23.         }
  24.         # translate spatial coords in to display coords
  25.         xa=$((imgsize/2+xa))
  26.         ya=$((imgsize/2-ya))
  27.         xb=$((imgsize/2+xb))
  28.         yb=$((imgsize/2-yb))
  29.  
  30.         convert -size ${imgsize}x${imgsize} canvas:black \
  31.                 -stroke white -draw "rectangle 5,5 $((imgsize-5)),$((imgsize-5))" \
  32.                 -stroke black -fill blue -draw "circle $xa,$ya $((xa+5)),$ya" \
  33.                 -fill yellow -draw "circle $xb,$yb $((xb+10)),$yb" \
  34.                 draw_point$((i+10000)).gif
  35. done
  36.  
  37. convert -loop 0 -delay 20 *.gif points.gif
  38. rm draw_point*.gif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement