Skip to content

black turn NAN when converting from luv to rgb space #12

@EmilHvitfeldt

Description

@EmilHvitfeldt

It appears that when a color is converted from luv space and has an l value of 0 it returns NaN or other weird things.

library(farver)

(black <- t(col2rgb(grey.colors(5, 0, 0.01))))
#>      red green blue
#> [1,]   0     0    0
#> [2,]   1     1    1
#> [3,]   2     2    2
#> [4,]   2     2    2
#> [5,]   3     3    3

(black_luv <- convert_colour(black, "rgb", "luv"))
#>              l             u            v
#> [1,] 0.0000000  0.000000e+00 0.000000e+00
#> [2,] 0.2741748 -5.504162e-08 3.663056e-08
#> [3,] 0.5483497 -1.100832e-07 7.326111e-08
#> [4,] 0.5483497 -1.100832e-07 7.326111e-08
#> [5,] 0.8225245 -1.651249e-07 1.098917e-07

(convert_colour(black_luv, "luv", "hsv"))
#>             h            s           v
#> [1,]   0.0000 0.000000e+00         NaN
#> [2,] 137.2808 2.465629e-07 0.003921569
#> [3,] 137.2808 2.465629e-07 0.007843138
#> [4,] 137.2808 2.465629e-07 0.007843138
#> [5,] 137.2808 2.465629e-07 0.011764708

black_luv[, 1] <- 0

(convert_colour(black_luv, "luv", "rgb"))
#>        r   g   b
#> [1,] NaN NaN NaN
#> [2,] NaN NaN NaN
#> [3,] NaN NaN NaN
#> [4,] NaN NaN NaN
#> [5,] NaN NaN NaN

(convert_colour(black_luv, "luv", "hsv"))
#>        h s   v
#> [1,] NaN 0 NaN
#> [2,] NaN 0 NaN
#> [3,] NaN 0 NaN
#> [4,] NaN 0 NaN
#> [5,] NaN 0 NaN

Created on 2019-11-08 by the reprex package (v0.3.0)

Session info
devtools::session_info()
#> ─ Session info ──────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 3.6.0 (2019-04-26)
#>  os       macOS Mojave 10.14.6        
#>  system   x86_64, darwin15.6.0        
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_US.UTF-8                 
#>  ctype    en_US.UTF-8                 
#>  tz       America/Los_Angeles         
#>  date     2019-11-08                  
#> 
#> ─ Packages ──────────────────────────────────────────────────────────────
#>  package     * version    date       lib
#>  assertthat    0.2.1      2019-03-21 [1]
#>  backports     1.1.5      2019-10-02 [1]
#>  callr         3.3.2      2019-09-22 [1]
#>  cli           1.9.9.9000 2019-10-04 [1]
#>  crayon        1.3.4      2017-09-16 [1]
#>  desc          1.2.0      2018-05-01 [1]
#>  devtools      2.2.1      2019-09-24 [1]
#>  digest        0.6.22     2019-10-21 [1]
#>  ellipsis      0.3.0      2019-09-20 [1]
#>  evaluate      0.14       2019-05-28 [1]
#>  fansi         0.4.0      2018-10-05 [1]
#>  farver      * 1.1.0.9999 2019-11-08 [1]
#>  fs            1.3.1      2019-05-06 [1]
#>  glue          1.3.1      2019-03-12 [1]
#>  highr         0.8        2019-03-20 [1]
#>  hms           0.5.2      2019-10-30 [1]
#>  htmltools     0.4.0      2019-10-04 [1]
#>  knitr         1.25       2019-09-18 [1]
#>  magrittr      1.5        2014-11-22 [1]
#>  memoise       1.1.0      2017-04-21 [1]
#>  pillar        1.4.2      2019-06-29 [1]
#>  pkgbuild      1.0.6      2019-10-09 [1]
#>  pkgconfig     2.0.3      2019-09-22 [1]
#>  pkgload       1.0.2      2018-10-29 [1]
#>  prettyunits   1.0.2      2015-07-13 [1]
#>  processx      3.4.1      2019-07-18 [1]
#>  progress      1.2.2      2019-05-16 [1]
#>  ps            1.3.0      2018-12-21 [1]
#>  R6            2.4.0      2019-02-14 [1]
#>  Rcpp          1.0.2      2019-07-25 [1]
#>  remotes       2.1.0      2019-06-24 [1]
#>  rlang         0.4.1      2019-10-24 [1]
#>  rmarkdown     1.16       2019-10-01 [1]
#>  rprojroot     1.3-2      2018-01-03 [1]
#>  sessioninfo   1.1.1      2018-11-05 [1]
#>  stringi       1.4.3      2019-03-12 [1]
#>  stringr       1.4.0.9000 2019-10-15 [1]
#>  testthat      2.2.1      2019-07-25 [1]
#>  tibble        2.1.3      2019-06-06 [1]
#>  usethis       1.5.1.9000 2019-08-25 [1]
#>  vctrs         0.2.0.9007 2019-10-22 [1]
#>  withr         2.1.2.9000 2019-10-04 [1]
#>  xfun          0.10       2019-10-01 [1]
#>  yaml          2.2.0      2018-07-25 [1]
#>  zeallot       0.1.0      2018-01-28 [1]
#>  source                            
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  Github (r-lib/cli@ad6410a)        
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  Github (thomasp85/farver@b8530de) 
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  Github (tidyverse/stringr@03a7ebe)
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  Github (r-lib/usethis@bcef417)    
#>  Github (r-lib/vctrs@5bd3a27)      
#>  Github (r-lib/withr@07bfc68)      
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#>  CRAN (R 3.6.0)                    
#> 
#> [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions