int leftCenterX = 150;
int orbitRad = 100;
int satelliteDia = 30;
int X = leftCenterX, Y = 240;
int angle = 0;
int speed = 1;

void draw(){
  background(255);
  fill(255, 255, 255);
  stroke(0);
  ellipse(leftCenterX, Y, orbitRad * 2, orbitRad * 2);
  ellipse(leftCenterX + orbitRad * 2, Y,orbitRad * 2, orbitRad * 2);
  fill(0, 0, 255);
  noStroke();
  if(angle >= 360){
    println("left_to_right");
    speed = -speed;
    angle = 180;
    X = leftCenterX + orbitRad * 2;
  }
  if(angle <= -180){
    println("right_to_left");
    speed = -speed;
    angle = 0;
    X = leftCenterX;
  }

  ellipse(cos(radians(angle)) * orbitRad + X,
          sin(radians(angle)) * orbitRad + Y,
          satelliteDia, satelliteDia);
  angle = angle + speed;
}

このコードの単語の意味はわかるのですが、総合的に見た時にどことどこがリンクしているのかがわからないです。これをプレビューした時に2つの円の上を青い点が動くのですが、なぜこの2つの円の上を通っているのかがわかりません。
どなたかよろしくお願いします。