I have noticed that every computer graphics system I have ever used uses a left-handed coordinate system with its origin in the upper left corner. Cairo, Java, Microsoft XYZ, and most graphics programs all use this system. I assume they all date back to a common ancestor, but I can’t find any references about this.
If I had to guess I’d say it came from VGA graphics mode, using the same coordinates as text, which were naturally based on how the English language is read top-down, left-right, with the “second line” below the “first line”… but I’m making that up.
Was anyone around to tell the tale, or can point me in the direction of the correct history book?
It’s an old convention, and the reasons might be a bit apocryphal. Here are some hypotheses I’ve found:
It’s derived from CRT electron beam sweep behavior.
Scanning from top to bottom means you don’t have to wait for an entire frame to be sent first, you just begin scanning as soon as you begin receiving data. (Which raises the question again, why scan from top to bottom)
It allows a right-handed coordinate system with the Z axis going into the screen rather than coming out of it.
Annoyingly, Cocoa and Quartz use lower-left origin.