Color Chooser

@Andrew_Stacey - When you’re responding to a finger dabbing at the screen to choose a colour, I suggest you have all the time in the world to respond, so a pixel get is perfectly ok. It is also less complex for the less mathematical among us.

@Ignatz Actually, I disagree. It depends on what you’re doing as that finger dabs. If you are continually updating something to show what the colour currently is (ie what the selection would be if the finger were lifted at that point) then you can’t afford lagging. You need to be fully responsive to the movement of the finger otherwise it gets confusing for the user.

@Andrew_Stacey Dude, give it a rest. I honestly don’t care if I use a circle or a hexagon. I don’t care if it’s “programmatically correct.” If it’s a simple drawing app, people will not care. It’s easier to use a ring or a circle, it’s easier to compute touches, and EVEN IF I USED A HEXAGON IT WOULD GET THE COLOR THE EXACT SAME WAY. There is no difference. Besides, this is MY color chooser, not yours. If you want to waste hours coding a hexagon nobody’s going to care about, fine by me. I’m not going to, though. To me, a circle is the right way. It works for everyone else, colors don’t have to be precise here. Quit beating a dead horse.

Ouch! Before @Andrew_Stacey and @SkyTheCoder murder each other I thought i’d put some of this in perspective. You’re both right and both wrong.

As a pro 3D Artist, i deal with colour every-day and I really couldnt give a monkeys if its a hexagon or a circle. What I do care about is being able to specify colour as HSV values rather than RGB which gives you a much greater degree of control. For most casual users mathematical precision really isn’t hugely important as long as it looks ‘kinda right’. Even in my day job I really cant resolve 16 million colour combos that accurately, but can make a good aesthetic decisions with the tools I have. :smiley:

I think its very easy on this forum to get hung up on ‘the correct way’ of doing stuff. @SkyTheCoder should be applauded for developing something that works really well, and @Andrew_Stacey for his insight. Your both right and wrong.

Well, i dont know. What about a pentagon?
:)) :)) :)) :)) :)) :))
(sorry, i couldnt help it)

LOL @ Jmv38 - the voice of reason :wink:

@SkyTheCoder Calm down! I’m not telling you what to do and I never did. I’ve been trying to explain something and you’re not the only one reading so it’s not aimed at you. Often I find that I understand something more myself when I try to explain it to someone else so I often take the time to go through stuff in painful detail to ensure that I understand it. If anyone else does then that’s just a bonus. I’m an academic, and a mathematician to boot, which makes me like a teacher only worse!

So get used to discussions like these as they tend to happen a lot when I’m around.

@andymac3d I think you meant “You’re both right and wrong.” (Last sentence.)

(Sorry, sorry - couldn’t help myself.)

Seriously, I’m curious as to why HSV gives you a much greater degree of control over HSV. Could you explain that?

Did you mean HSV over RGB? Im not a big fan of colour wheels/hexagons/dodecahedrons etc… per se. I think they can get you in the general area, but I get better control using individual HSV sliders than sliding over a grid of colour and hoping for the best.

Indeed, a ‘good’ colour picker will give you multiple methods of selecting and modifying the colour - ideally with a colour wheel AND sliders. The ‘better’ ones give you the control of swapping between colour models with HSV/RGB/CMYK and LAB controls and mapping the values (when valid) across each. (p.s. Photoshop is often a good reference for most people in this respect, as its colour management is pretty good and flags ‘gamut warnings’ when you select a colour that cant be represented in another colour space).

@Andrew_Stacey - after re-reading your question I guess HSV tends to give me more control with creative clients. Especially with ‘creatives’ who talk in terms of ‘de-saturating’ tones and boosting the ‘intensity’ of colours. Although being able to swap into RGB mode gives me the ability to add another level of fine tuning if I need it.

A ‘good’ color picker should even show your choice in a square over another bigger background square for whch you can choose the color too… Color perception change strongly depending on what is around.

@Andrew_Stacey It did feel like you were aiming it at me, as it first started with you talking to me. But seriously, why did you keep pushing that hexagons were better than circles? They both would give the same result.

@Jmv38 So basically two color pickers drawn on top of each other?

@andymac3d Yes, RGB can give much higher precision than HSV, but the reason I used a HSV color picker here is because I was tired of using RGB sliders to choose colors, and wanted an easy-to-use color ring, for non-precise color choosing, just chosen by tapping on the H that looks nice, and then going into a bit more detail with S and V. I may add RGB sliders, too, though, for precision color choosing. But that’s the problem, it’s hard to choose a precise color with your big fingers fumbling around everywhere. (At least, fingers are big to your iPad. If you think about it, it must be pretty complicated, know the mass of pixels your finger is touching and trying to figure out the exact position.)

@SkyTheCoder No, they don’t necessarily give the same result. They only do that if you use the naïve selection method that uses angle. If you use the “nearest point” selection method then they don’t: the hexagon makes it easy to pick the primary and secondary colours. That’s what I’ve been trying to get across (and, it seems, dismally failing).

I “kept pushing”, to use your phrase, because you made one fatal error. You used the phrase “I don’t under stand [sic] what you mean.”. To a teacher, that means that the discussion cannot end until you say “Oh, now I understand.”.

Moreover, have you ever known any discussion on these forums stick on topic? At least once it gets to about the 7th or 8th post?

@Andrew_Stacey Okay, I understand now. But anyways, I feel that a “nearest point” selection method would be too much of a hassle to set up, and people wouldn’t tell the difference between it and trigonometry. Once again, my color chooser, not yours. If I feel I don’t want to do it, then I won’t.

Also, you probably don’t know this, but I’m homeschooled. To me, if I’m just not getting something, I can just stop. If I don’t understand it after multiple explanations, I’m not going to.


To me, if I’m just not getting something, I can just stop. If I don’t understand it after multiple explanations, I’m not going to.

I actually find that quite sad. But I’ll stop going on about it now.


Rage face

@SkyTheCoder The day you stop learning is the day you stop living, why would you ever just not do something because you couldn’t do it the first couple times?

@luatee - I’m a lot older, and I do the same. If I have real trouble understanding something, I find it’s often best to give it a break and come back later. I didn’t read the comment as defeatist.

And if I was SkyTheCoder’s age, I wouldn’t expect to be understanding advanced math just yet… There’s plenty of time for that later.

@Ignatz I believe SkyTheCoder is doing pretty advanced maths for his age, I in no way doubt that he’s capable though, I didn’t even know trigonometry at that age which leads me to think that the learning style of not breaking from a problem would be very beneficial to his learning but we all do things differently so its not something to expect, I know…

I downloaded and installed to check it out but am getting an error:

ColorChooser:14: bad argument #1 to 'set' (number has no integer representation)
stack traceback:
	[C]: in method 'set'
	ColorChooser:14: in field 'init'
	... false

    setmetatable(c, mt)
    return c
end:24: in global 'ColorChooser'
	Main:4: in function 'setup'