A/D: rotate counterclockwise/clockwise W/S: zoom in/out Arrow keys: move, relative to the position of the camera The time complexity scales linearly with the amount of objects. This demo has 2000, and runs decently on most computers. 3000 is too many.
atan2 function: @raucket