The whole direction system is rotated counterclockwise by 90 degrees, it seems. 0 should be right, 90 should be up, etc. It makes the whole thing confusing, and also requires me to rotate any drawn sprites 90 degrees to the right, which I often forget.
“Wrong” is a little strong; the angle measurement system is an arbitrary choice. But I see what you mean.
There’s a long, complicated history behind this.
Mathematicians are unanimous that angles increase counterclockwise from right. This has to do with the way complex numbers are graphed, with the real axis horizontal and the imaginary axis vertical.
On the other hand, navigators, orienteers, and other people who use maps have a long history of measuring angles clockwise from up, because up is north on maps. (North is important to navigation because of magnetic compasses, of course, but also there’s a long and interesting history of mapmakers privileging Europe.) That explains why north is zero, but it doesn’t explain why angles increas clockwise. I don’t know the answer but I’m guessing it’s because of clocks, and probably if you go back far enough in history you’ll find that that’s because most people are right-handed. But that’s just a guess; I’m sure Wikipedia would be happy to explain it all. :~)
So, those are the two grownup angle systems, differing both in where zero is and in the direction of increasing angles.
When they designed Logo, the first programming language intended specifically for kids, they chose to go with the orienteering system rather than the mathematical system, because their target audience was way younger than the age at which complex numbers appear in the math curriculum, but kids do deal with maps, especially if they’re Cub Scouts. :~) In those early days there was just one turtle, and it was a triangle, because the state of affordable graphics was primitive.
Sprites came later, but still long before Scratch was developed. Once you have sprites with costumes, up on the screen represents up, not north, and you want your costumes standing up rather than lying down. But since sprites came fairly late in Logo history, they were already committed to the orienteering approach to angles, and that’s why costumes’ straight ahead is at direction 90, not direction 0. (Why don’t costumes all face left instead of right? I’m not sure anyone thought very much about that, but it’s also probably related to people mostly being right-handed.)
Scratch inherited its angle measurement from Logo. (A lot of the same people were involved.) They could have decided to break with Logo and measure angles counterclockwise from right, but they didn’t. I kind of wish they had, because our target audience does include kids old enough to know about complex numbers!
We didn’t even think about changing the angle system, because in our early days we wanted the Scratch Team to adopt the idea of custom blocks and first class procedures (rings), and so we didn’t want to introduce any unnecessary incompatibilities with Scratch.
Math teachers often complain about this, but users who come to us from Scratch, which is most of them, are used to it.
just a quick side note: For the next major release (v12) I’m experimenting with ways to let you choose between math angles and compass bearings for the microworlds you’re creating. The Shapes library already has two custom blocks for that:
You can avoid give a table of colours to the NEW COSTUME block and leave the width/height fields empty to create a costume with said table’s dimensions:
I’m guessing that this is because we read left to right. It makes it natural for things to move left to right (i.e. in platformers) and thus face right. And, of course, we write the way we do because of most people being right-handed.