Graphics Programming

만나면 피하는 집단 이동 본문

Season 1/플래시

만나면 피하는 집단 이동

minseoklee 2011. 3. 11. 09:14


figure1
유닛들을 u1, u2, ... , uN이라 하자. 이런 식으로 이중 for문을 돌린다.

for(i=0 ; i<N ; i++){
  for(j=i+1 ; j<N ; j++){
    // do something
  }
}

안쪽 for문에서 : 두 유닛이 부딪히면 둘의 중심을 이은 선상의 방향으로 멀어지는 동시에 시계 방향으로 돈다.
figure2
 둘이 같이 돈다는 정보를 어딘가에 저장한다.

매 갱신마다 짝을 이룬 유닛들을 함께 돌리다가, 적어도 한 유닛의 속도 벡터와 중심 벡터가 이루는 각의 크기가 90도를 넘으면 서로 진행하는 데 방해가 되지 않으므로 정보를 없애고 제 갈 길을 간다.


 


Comments