private void turnTowardsTargetAngle() {
        double angleDifference = angle - targetAngle;
        if (Math.min(Math.abs(angleDifference), 2 * Math.PI - Math.abs(angleDifference)) < da) {
            angle = targetAngle;
        } else if (angleDifference > Math.PI) {
            angle += da;
            angle %= 2 * Math.PI;
        } else if (angleDifference > 0) {
            angle -= da;
            angle %= 2 * Math.PI;
        } else if (angleDifference > -Math.PI) {
            angle += da;
            angle %= 2 * Math.PI;
        } else {
            angle -= da;
            angle %= 2 * Math.PI;
        }
    }