- if (r == max) {
- h = (g - b) / delta; // between yellow & magenta
- } else if (g == max) {
- h = 2 + (b - r) / delta; // between cyan & yellow
+ if (delta > 0) {
+ if (r == max) {
+ h = (g - b) / delta; // between yellow & magenta
+ } else if (g == max) {
+ h = 2 + (b - r) / delta; // between cyan & yellow
+ } else {
+ h = 4 + (r - g) / delta; // between magenta & cyan
+ }