본문 바로가기

Codes

Java - 최적화된 회전 방향 결정

AI 공부하면서 플로킹 알고리즘에 써먹던 건데 예에에전에 이거 생각하느라 고생 좀 해서 올려봤다.

// 타겟과의 각거리를 이용해 최적화된 회전방향을 결정. '1' = cw  '-1' = ccw

public int decAngle(Point2D.Double target){
return decAngle(getTargetAngle(target));
}
public int decAngle(double targetAngle){
double angleDelta = targetAngle - angle;
int dec = 0;
if((targetAngle > 0.5 * Math.PI || angle < 1.5 * Math.PI)
&& (angle > 0.5 * Math.PI || targetAngle < 1.5 * Math.PI)
&& Math.abs(angleDelta) < Math.PI)
dec = (0 < angleDelta) ? 1 : -1;
else
dec = (0 < angleDelta) ? -1 : 1;
return dec;
}

머리가 안좋아서 이 이상으로 간단하게는 로직을 못짜겠다. ㅠㅠ.
고개돌리는건 보간법으로 알아서 처리하자.

'Codes' 카테고리의 다른 글

Flocking in Java - testFrame  (0) 2011.11.01
Java - K-means Algorithm  (2) 2011.10.18