Is there any historical reason for this?
Oh yes, there is a real linage of reason :))
OpenGL is an open source version of the former proprietary IRIS GL library offered by SGI for their graphics workstation. This was done as a move to get a wider acceptance than the the standard PHIGS. The move worked out fine, as IRIS GL was a way lower, more hardware orientated approach, better fitting the less capable nature of back then machines.
Using counterclockwise sequence as mark for orientation was at that time already standard.Both system (IRIS GL and PHIGS) use CCW as default. IRIS GL allows to specify clockwise direction as a system wide setting via
pfBboardAxis(). This is offered as a support for customer specific systems with a data set made on assuming CW orientation.
Code based detection works of course equally well for both ways, as it's always about testing the sign, so setting either just defines what to test the sign for. SGI called it 'sense':
An indication of whether a positive angle is interpreted as representing a
clockwise or counterclockwise rotation with respect to an axis. All CCW
rotations in IRIS Performer are specified by positive (+) angles and negative
angles represent CW rotations.
(Excerpt from the IRIS Performer Programming Guide)
A very common 'tool' when visualizing orientation is the mentioned right-hand-rule (*1). Right hand or three finger rules help remind the relation of laws/deinition based on multiple components set in 90 degree angles of each. Here the axis orientation, as well as rotational angles.
- Holding the right hand up, with the thumb up, pointer finger straight and middle finger 90 degrees to the left shows the orientation of each component. Nicely pictured on the Swiss 200 Franks note:
(Image Taken from the Swiss National Bank site)
- Build a fist with your right hand and extend your thumb upward. When orientating the thumb an axis' orientation, then the fingers describe the 'direction' of the angles(*1). That's counterclockwise due the way our hands are constructed. Sometimes also called 'Winding Direction' as the fingers 'wind' around the axis.
Using that picture (the right-hand rule), counterclockwise is what gives positive numbers, usually more readable than having most with a prefixed minus. Likewise for programmers.
This all goes back to Euler Angles, a system devised by Swiss mathematician Leonhard Euler, who defined essentially the way we write mathematics today, like the use of Greek letters (*2) for lot of stuff including naming the angles of a triangle as α, β and γ (Alfa, Beta, Gamma) when defining his theories about triangles. Likewise he used upper case Latin for the points (A, B, C) and lower case for a triangles sides (a, b, c) (*3).
All of them in counterclockwise sequence.
Using Eulers terminology and applying the Right Hand Rule results in nice positive numbers for counterclockwise orientation (*4).
It's the result of historic developed nomenclature, going back 300 years, nicely fitting the way humans think and computer work.
P.S.: Thanks to the versatility of RC.SE patrons, like Jacob Krall, Leo B. and Davidbak, most of that was already pointed out, in comment form, just minutes after the question was posted.
*1 - We seem to be very handy creatures, considering that hand based rules come up in next to everything from Ampere's (the guy with the AMPs) right hand rule defining the north pole of an electromagnet to naming an particles quantum spin as up and down according to the right hand rule.
*2 - He influenced everyday language so deep, that most people think first of 3.14 when hearing Pi or of a difference when saying Delta, that is, maybe except Greeks :)
*3 - That's why today we aren't using Euklid's naming to write the Pythagorean Theorem, but a²+b²=c², as Euler suggested.
*4 - I believe that his work, in structuring the how math is written, may have been the single most important important step to enable later development. Before him defining once and for all (all the way to OpenGL and beyond) how a triangle is named, and what symbols are used in general, each math script started with several pages defining its own language (or worse, mangled that between many pages), to talk about such basic stuff.
His formal way is what brought math a great step ahead, by removing the need to reinvent essentials over and over - much like ALGOL put programming on another level. It is that structuring of how math is written that had, IMHO, way more impact than any of his, otherwise very important, discoveries. He made math talk one language.