I knew this, but I forgot it yesterday when I was working on GIRC. This convention of inverting the y-axis for screen display isn’t peculiar to Processing, it’s common to many programming languages. There is a way to change the convention at the outset of a program, but I don’t know if I want to mess with that.
Anyhow, I have the GIRC heading calculations correct now. (Or . . . do I?)
This experience has caused me to reflect on the Five Stages of Programmer’s Grief:
I. Oh, this will be easy!
II. Why is this so hard?
III. This is impossible!
IV. DOH! Of course!
V. That was easy!
First I have this flash of inspiration and in my mental image I don’t see all the steps, just the end result.
Then I get into the nitty-gritty of writing the program, and I realize I have to do this and that and the other thing and it’s two steps backward for every step forward and the effort rapidly becomes frustrating.
Then I get bogged down and come to a complete stop. The cause is hopeless, whatever made me think I could do it?
Then I find that there was some trivial bug that is easily fixed and everything runs smoothly. How could I have made such a mistake, and why didn’t it jump out at me the first time I reviewed the source code listing?
Finally, I’m done with the finished product, and I forget all the hard work, and it I congratulate myself on being so clever — though in the back of my mind I wonder if I’m losing it, because it took me so long to do it.
But then I blame the universe for not being able to calculate 6 x 9 correctly, and get on with life.