I think it's because the normal atan receives one argument, eg atan(y/x) and then sometimes you can't divide by zero, and it can’t distinguish quadrants (because we loose info on the sign of Y-coordinate and the X-coordinate). atan2 takes 2 params and knows the signs so it can understand the quadrants and also handle divide by zero. I now realize that the name atan2 probably refers to 2 parameters.