Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; This file: ;; http://anggtwu.net/elisp/find-erainbowgrid.el.html ;; http://anggtwu.net/elisp/find-erainbowgrid.el ;; (find-angg "elisp/find-erainbowgrid.el") ;; Author: Eduardo Ochs <eduardoochs@gmail.com> ;; Version: 2024mar03 ;; ;; (defun e () (interactive) (find-angg "elisp/find-erainbowgrid.el")) ;; (load "~/elisp/find-erainbowgrid.el") ;; «.ranges» (to "ranges") ;; «.rgb» (to "rgb") ;; «.lab» (to "lab") ;; «.lch» (to "lch") ;; «.hsl» (to "hsl") ;; «.hsv» (to "hsv") ;; «.hpluv» (to "hpluv") ;; «.hsluv» (to "hsluv") ;; «.saturated-colors» (to "saturated-colors") (require 'ct) (defun find-erainbowstring (str) (find-estring str) (rainbow-mode)) (defun ee-makegrid-h (os) (mapconcat 'identity os " ")) (defun ee-makegrid (oss) (mapconcat 'ee-makegrid-h oss "\n")) ;; (find-erainbowstring (ee-makegrid '(("#001020" "#304050") ("#607080" "#90A0B0")))) (defun ee-seq (a b &optional step) (if (not step) (cl-loop for x from a to b collect x) (if (> step 0) (cl-loop for x from a to b by step collect x) (cl-loop for x from b to a by (- step) collect x)))) (defun ee-toward (a b n k) (+ a (/ (* k (- b a)) n))) (defun ee-seqn (a b n) (cl-loop for k from 0 to n collect (ee-toward a b n k))) ;; (ee-seq 100 200 10) ;; (ee-seq 100 200) ;; (ee-seq 200 100) ;; (ee-seq 200 100 -10) ;; (ee-seqn 200 100 10) ;; (ee-seqn 200 100.0 10) (defun find-erainbowgrid (f &optional x0 x1 y0 y1) (find-erainbowstring (ee-makegrid (cl-loop for y in (ee-seqn (or y0 0) (or y1 100) 50) collect (cl-loop for x in (ee-seqn (or x0 0) (or x1 100) 10) collect (funcall f x y)))))) ;; (format "%02X%02X44" 160 200) ;; (find-erainbowgrid (lambda (x y) (format "#%02X%02X44" x y)) 0 255 0 255) ;; (find-erainbowgrid (lambda (x y) (format "(%s %s)" x y))) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsluv 10 x y))) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsluv 0 x y))) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsluv 50 x y))) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsluv x 50 y))) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsluv x y 50))) ;; (find-erainbowgrid (lambda (x y) (ct-make-rgb x y 0))) ;; (find-erainbowgrid (lambda (x y) (ct-make-rgb x 0 y))) ;; (find-erainbowgrid (lambda (x y) (ct-make-rgb 0 x y))) ;; ct-make-rgb (R G B) "Make a color using R*G*B properties." ;; ct-make-hsl (H S L) "Make a color using H*S*L properties." ;; ct-make-hsv (H S V) "Make a color using H*S*V properties." ;; ct-make-hsluv (H S L) "Make a color using H*S*L*uv properties." ;; ct-make-hpluv (H P L) "Make a color using H*P*L*uv properties." ;; ct-make-lab (L A B) "Make a color using L*A*B properties." ;; ct-make-lch (L C H) "Make a color using L*C*H properties." ;; «ranges» (to ".ranges") ;; (find-ctfile "ct.el" "Ranges for RGB are all 0-100") ;; (find-ctfile "ct.el" "Ranges for LAB are {0-100,-100-100,-100-100}") ;; (find-ctfile "ct.el" "Ranges for LCH are {0-100,0-100,0-360}") ;; (find-ctfile "ct.el" "Ranges for HSL are {0-360,0-100,0-100}") ;; (find-ctfile "ct.el" "Ranges for HSV are {0-360,0-100,0-100}") ;; (find-ctfile "ct.el" "Ranges for HPLUV are {0-360,0-100,0-100}") ;; (find-ctfile "ct.el" "Ranges for HSLUV are {0-360,0-100,0-100}") ;; «rgb» (to ".rgb") ;; (find-erainbowgrid (lambda (x y) (ct-make-rgb x y 0)) 0 100 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-rgb x 0 y)) 0 100 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-rgb 0 x y)) 0 100 0 100) ;; «lab» (to ".lab") ;; (find-erainbowgrid (lambda (x y) (ct-make-lab x y 0)) 0 100 -100 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-lab x 0 y)) 0 100 -100 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-lab 50 x y)) -100 100 -100 100) ;; «lch» (to ".lch") ;; (find-erainbowgrid (lambda (x y) (ct-make-lch x y 0)) 0 100 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-lch x 50 y)) 0 100 0 360) ;; (find-erainbowgrid (lambda (x y) (ct-make-lch 50 x y)) 0 100 0 360) ;; «hsl» (to ".hsl") ;; (find-erainbowgrid (lambda (x y) (ct-make-hsl x y 50)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsl x 100 y)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsl 40 x y)) 0 100 0 100) ;; «hsv» (to ".hsv") ;; (find-erainbowgrid (lambda (x y) (ct-make-hsv x y 50)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsv x y 100)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsv x 100 y)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsv 40 x y)) 0 100 0 100) ;; «hpluv» (to ".hpluv") ;; (find-erainbowgrid (lambda (x y) (ct-make-hpluv x y 50)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hpluv x 100 y)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hpluv 40 x y)) 0 100 0 100) ;; «hsluv» (to ".hsluv") ;; (find-erainbowgrid (lambda (x y) (ct-make-hsluv x y 50)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsluv x 100 y)) 0 360 0 100) ;; (find-erainbowgrid (lambda (x y) (ct-make-hsluv 40 x y)) 0 100 0 100) ;; «saturated-colors» (to ".saturated-colors") ;; (find-erainbowgrid (lambda (x y) (ct-make-hsv y x 100)) 0 100 0 360) ;; (find-erainbowbar (lambda (y) (ct-make-hsv y 100 100)) 0 360) ;; Local Variables: ;; coding: utf-8-unix ;; End: