Agents in Biology
213
break;
default:
break;
}
}
int getNewDirection(int currentDir, double angle) {
double vx = 0;
double vy = 0;
switch (currentDir) {
case 8:
vy = 1;
break;
case 4:
vy = -1;
break;
case 1:
vx = 1;
vy = 1;
break;
case 2:
vx = 1;
break;
case 3:
vx = 1;
vy = -1;
break;
case 5:
vx = -1;
vy = -1;
break;
case 6:
vx = -1;
break;
case 7:
vx = -1;
vy = 1;
break;
default:
break;
}
double length = sqrt((vx * vx) + (vy * vy));
double alpha = acos(vy / length) * (180.0 / 3.142);
if (vx < 0) {
alpha = 360 - alpha;
}
double totalAngle = alpha + angle;
if (totalAngle > 360) {
totalAngle -= 360;
}
if (totalAngle < 0) {
totalAngle += 360;
}
Précédent

- 242/329

Suivant