Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local com = require('component')
- local term = require('term')
- local os = require('os')
- local args = { ... }
- local gpu = com.gpu
- local w,h = gpu.getResolution()
- local red = {}
- red[1] = 0 -- 00
- red[2] = 3342336 -- 33
- red[3] = 6684672 -- 66
- red[4] = 10027008 -- 99
- red[5] = 13369344 -- CC
- red[6] = 16711680 -- FF
- local green = {}
- green[1] = 0 -- 00
- green[2] = 9216 -- 24
- green[3] = 18688 -- 49
- green[4] = 27904 -- 6D
- green[5] = 37376 -- 92
- green[6] = 46592 -- B6
- green[7] = 55296 -- DB
- green[8] = 65280 -- FF
- local blue = {}
- blue[1] = 0 -- 00
- blue[2] = 64 -- 40
- blue[3] = 128 -- 80
- blue[4] = 192 -- C0
- blue[5] = 255 -- FF
- local lumen = {}
- function drawRect(colour)
- local old = gpu.getBackground()
- gpu.setBackground(colour)
- gpu.fill(w/4,h,w/2,1," ")
- gpu.setBackground(old)
- end
- function decHex(dec)
- local b,k,out,i,d=16,"0123456789ABCDEF","",0
- while dec>0 do
- i=i+1
- dec,d=math.floor(dec/b),dec%b+1
- out=string.sub(k,d,d)..out
- end
- return out
- end
- function pairsByKeys(t,f)
- local a = {}
- for n in pairs(t) do table.insert(a,n) end
- table.sort(a,f)
- local i = 0
- local iter = function()
- i = i + 1
- if a[i] == nil then return nil
- else return a[i], t[a[i]]
- end
- end
- return iter
- end
- if args[1] == "normal" then
- count = 1
- term.setCursor(1,h)
- for i=1,6 do
- for j=1,8 do
- for k=1,5 do
- local num = red[i]+green[j]+blue[k]
- drawRect(num)
- print(count, decHex(num))
- count = count + 1
- os.sleep(0.1)
- end
- end
- end
- elseif args[1] == "lum" then
- count = 1
- term.setCursor(1,h)
- for i=1,6 do
- for j=1,8 do
- for k=1,5 do
- local num = red[i]+green[j]+blue[k]
- drawRect(num)
- local lum = math.sqrt(0.299*((red[i]/65536)^2)+0.587*((green[j]/256)^2)+(blue[k]^2))
- print(count, decHex(num), lum)
- lumen[lum] = num
- count = count + 1
- os.sleep(0.1)
- end
- end
- end
- for col,lumi in pairsByKeys(lumen) do
- print(col,decHex(lumi))
- drawRect(lumi)
- os.sleep(0.1)
- end
- else
- print("Usage: colour normal")
- print("Usage: colour lum")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement