To Really Melt Your Brain…

Take on any programming task which involves working with multiple different coordinate systems! You know, the things that define where stuff appears on a screen.

Simple, right?

Wrong. Dead wrong.

The origin of one system doesn’t have to correspond to any other system’s origin. Origins are arbitrary, so any consistency is due solely to convention.

Even worse, increasing or decreasing values along an axis isn’t guaranteed to move you in the same direction in different systems. I ran into this today because Windows uses a system where the origin is in the upper left corner of “the universe” and increasing Y (vertical) values move you down the screen (i.e., opposite to what you’d do with plotting stuff on a traditional piece of graph paper), while the Mercator projection has the origin in the middle of its universe and Y axis changes behave “normally” (i.e., increasing them moves you up, decreasing them moves you down).

Keeping track of all the implications of these two minor differences is an unbelievable pain-in-the-ass. I wonder how many person-years — maybe person-decades? — of effort have been wasted as a result of this difference. I sure hope there are enormous benefits to someone for the “Windows coordinate system”…because the cost of integrating it into the world is ginormous.

BTW, there are plenty of other horrors awaiting you once you start messing with disparate coordinant systems. Check out I Hate Coordinate Systems! if you’d like to learn more.

Leave a Comment

Your email address will not be published. Required fields are marked *