Pono - 25 days ago 14
Swift Question

# Calculate hue angle range for red colours

I'm trying to correctly calculate colour hue angle range. Given an input default hue say

`120`
and a threshold value of
`20`
the range is between
`100 - 140`
(yes, I know - complex math).

Now in the application, when filtering an image, I can check if a given pixel falls into that range:

``````let inputHue = 120
let threshold = 20

let minHue = inputHue - threshold // 100
let maxHue = inputHue + threshold // 140

if (pixelHue > minHue && pixelHue < maxHue) {
// do something
}
``````

Now the problem is with red colours range where the most saturated red colour is at
`0/360`
on the colour wheel. Given an input hue of
`10`
the
`minHue`
is now
`-10`
(with a threshold of
`20`
) and
`maxHue`
is
`30`
. Because of that negative value for
`minHue`
the condition fails:

``````let pixelHue = 355 // this falls into a valid red range I want to get
let minHue = -10
let maxHue = 30

if (pixelHue > minHue && pixelHue < maxHue) {
// do something
}
``````

Does anyone know how to tackle this problem of a colour wheel? I'm trying to develop a general solution that would work for any given input hue (not only red colours).

Now your value of `355` passes because `(355>350 AND 355<30) OR (350>30 AND (355>350 OR 355<30))`.
To recap: `(hue>min AND hue<max) OR (min>max AND (hue>min OR hue<max))`