; ono-rgb.lsp 11june2009 dmemos ( set 'cmax 255 'cmin 0 ) ( set 'cdelta ( / ( - cmax cmin) 10 )) ( set 'drgb ( dup cdelta 3 )) ( set 'white ( dup cmax 3 )) ( set 'black ( dup cmin 3 )) ( set 'red ( list cmax cmin cmin )) ( set 'green ( list cmin cmax cmin )) ( set 'blue ( list cmin cmin cmax )) ( define ( limit rgbx) ( if ( > rgbx cmax) cmax ( if ( < rgbx cmin) cmin rgbx ))) ( define ( rgb-add rgb1 rgb2 ) ( map limit ( map + rgb1 rgb2))) ( define ( rgb-sub rgb1 rgb2 ) ( map limit ( map - rgb1 rgb2))) ( define ( rgb-complement rgb1 ) ( rgb-sub white rgb1 )) ( set 'yellow ( rgb-add red green )) ( set 'cyan ( rgb-add green blue )) ( set 'magenta ( rgb-add red blue )) ( define ( rgb-lighter rgb1 i ) ( if ( = nil i ) (set 'i 1 )) ( rgb-add rgb1 ( map * drgb ( list i i i )))) ( define ( rgb-darker rgb1 i ) ( if ( = nil i ) (set 'i 1 )) ( rgb-sub rgb1 ( map * drgb ( list i i i )))) ( set 'darkgrey ( rgb-lighter black 3 )) ( set 'lightgrey ( rgb-darker white ))