@SkyTheCoder Why can’t I prove you wrong about something you didn’t post about? I didn’t read that in the rules! But seriously, I mean no offence and my initial remark was an off-hand one.
Nevertheless, I still think there is a case for a hexagonal chooser and I still want to explain why - I am sort-of a teacher, after all.
Aesthetically, one can say that the circular one looks better and that’s why most UI designers choose it (since when has a UI been designed by function over form?). Moreover, the situation in which it helps is precisely the one where one wants to choose a rough colour and thus not PhotoShop (whatever that might be) that @Ignatz talks about. In a proper drawing program (which I assume PhotoShop to be) then one will want the ability to precisely choose the colour and then no wheel is ever going to give you that ability.
But I’ve lost count of the number of times I’ve tried to select precisely green or precisely blue in the Codea selector and failed miserably. The point is that when choosing a rough colour (that is, say I want “something vaguely orange”) then I can be quite imprecise and so the error on touching a wheel (or hexagon) is not a bother. But even if most of the time I’m happy with an approximate colour, there are times when I want a precise colour and almost always those times are when I want one of the primary, secondary, or black, or white. This is where the hexagon model with the correct selection method triumphs because it allows you to select the primary and secondary colours precisely (black and white come from tinting so are fine in either model).
Note the emphasised phrase.
Here’s how the correct selection method works. You start by touching the (hexagonal) wheel. This signals that you are going to select a hue. The exact hue chosen depends on where you stop touching. But you are allowed to stop touching anywhere on the screen, even off the wheel. Now, how does the code know what colour you meant to choose? The naïve way is to take the line from the centre to the touch point and see where it intersects the wheel. With this method both hexagon and circle give the same answer. But the more sophisticated way is to find the nearest point on the wheel to the touch point. Now it becomes much, much easier to select one of the corners and thus one of the primary or secondary colours.
Let me illustrate with some ascii art. To make this drawable, I have to use a square but the principle is the same.
_|_|_
_|_|_
| |
In the above, there are nine regions. The middle square represents the colour “wheel”. So when we finish touching the screen, the coordinate returned is the nearest point inside the middle square (or on its boundary if you prefer) to the touch point. The places we’re interested in are the outer regions. If we end up in one of the edge squares then the selected point is simply the corresponding point on the nearest edge. But if we end up in one of the corner squares then the selected point is always the corresponding corner. So it is really, really easy to select a corner as there is a vast region of the screen where you can end up that will guarantee you the corner.
So the hexagonal model is better because not all colours are equal, and the hexagonal model makes it easier to select the colours where it is more likely that you care about them being precise.