모듈:컬러/샌드박스

Module
소개: https://colorspace.r-forge.r-project.org/articles/color_spaces.html  현지의 p = {}  현지의 기능. is Empty(가치)  돌아가다 가치 == 영의 또는 가치 == '' 끝.  현지의 기능. 비어 있지 않음(가치)  돌아가다 가치 ~= 영의 그리고. 가치 ~= '' 끝.  현지의 기능. arg기본값(가치, 체납)  한다면 (가치 == 영의 또는 가치 == '') 그리고나서   돌아가다 체납  또 다른   돌아가다 가치  끝. 끝.  현지의 기능. numArgDefault(가치, 체납)  한다면 (가치 == 영의 또는 가치 == '') 그리고나서   돌아가다 체납  또 다른   돌아가다 수에 달하여(가치)  끝. 끝.  현지의 기능. isArgTrue(가치)  돌아가다 (가치 ~= 영의 그리고. 가치 ~= '' 그리고. 가치 ~= '0') 끝.  현지의 기능. is Empty(가치)  돌아가다 가치 == 영의 또는 가치 == '' 끝.  현지의 기능. 비어 있지 않음(가치)  돌아가다 가치 ~= 영의 그리고. 가치 ~= '' 끝.  현지의 기능. 16진수Rgb(육각색)  현지의 깨끗한 색 = 육각색:gsub('#', '#'):경기('^[%s#]*(.)[%s;]*
                
) 한다면 (#깨끗한 색 == 6) 그리고나서 돌아가다 수에 달하여(string.sub(깨끗한 색, 1, 2), 16), 수에 달하여(string.sub(깨끗한 색, 3, 4), 16), 수에 달하여(string.sub(깨끗한 색, 5, 6), 16) 그렇지 않으면 (#깨끗한 색 == 3) 그리고나서 돌아가다 17 * 수에 달하여(string.sub(깨끗한 색, 1, 1), 16), 17 * 수에 달하여(string.sub(깨끗한 색, 2, 2), 16), 17 * 수에 달하여(string.sub(깨끗한 색, 3, 3), 16) 끝. 오류('잘못된 16진수 색상' .. 깨끗한 색, 1) 끝. 현지의 기능. 둥그런(가치) 한다면 (가치 < 0) 그리고나서 돌아가다 수학, 수학,수학(가치 - 0.5) 또 다른 돌아가다 수학.플로어(가치 + 0.5) 끝. 끝. 현지의 기능. rgb To 헥스(r, g, b) 돌아가다 string.형식('%02X%02X%02X', 둥그런(r), 둥그런(g), 둥그런(b)) 끝. 현지의 기능. checkRgb(r, g, b) 한다면 (r > 255 또는 g > 255 또는 b > 255 또는 r < 0 또는 g < 0 또는 b < 0) 그리고나서 오류('색상 수준이 범위를 벗어남') 끝. 끝. 현지의 기능. rgbToCmyk(r, g, b) 현지의 c = 1 - r / 255 현지의 m = 1 - g / 255 현지의 y = 1 - b / 255 현지의 k = 수학.min(c, m, y) 한다면 (k == 1) 그리고나서 c = 0 m = 0 y = 0 또 다른 현지의 KC = 1 - k c = (c - k) / KC m = (m - k) / KC y = (y - k) / KC 끝. 돌아가다 c * 100, m * 100, y * 100, k * 100 끝. 현지의 기능. rgbToHsl(r, g, b) 현지의 채널맥스 = 수학.max(r, g, b) 현지의 채널 최소 = 수학.min(r, g, b) 현지의 범위 = 채널맥스 - 채널 최소 현지의 h, s 한다면 (범위 == 0) 그리고나서 h = 0 그렇지 않으면 (채널맥스 == r) 그리고나서 h = 60 * ((g - b) / 범위) 한다면 (h < 0) 그리고나서 h = 360 + h 끝. 그렇지 않으면 (채널맥스 == g) 그리고나서 h = 60 * (2 + (b - r) / 범위) 또 다른 h = 60 * (4 + (r - g) / 범위) 끝. 현지의 L = 채널맥스 + 채널 최소 한다면 (L == 0 또는 L == 510) 그리고나서 s = 0 또 다른 s = 100 * 범위 / 수학.min(L, 510 - L) 끝. 돌아가다 h, s, L * 50 / 255 끝. 현지의 기능. rgbToHsv(r, g, b) 현지의 채널맥스 = 수학.max(r, g, b) 현지의 채널 최소 = 수학.min(r, g, b) 현지의 범위 = 채널맥스 - 채널 최소 현지의 h, s 한다면 (범위 == 0) 그리고나서 h = 0 그렇지 않으면 (채널맥스 == r) 그리고나서 h = 60 * ((g - b) / 범위) 한다면 (h < 0) 그리고나서 h = 360 + h 끝. 그렇지 않으면 (채널맥스 == g) 그리고나서 h = 60 * (2 + (b - r) / 범위) 또 다른 h = 60 * (4 + (r - g) / 범위) 끝. 한다면 (채널맥스 == 0) 그리고나서 s = 0 또 다른 s = 100 * 범위 / 채널맥스 끝. 돌아가다 h, s, 채널맥스 * 100 / 255 끝. 현지의 기능. checkHsv(h, s, v) 한다면 (s > 100 또는 v > 100 또는 s < 0 또는 v < 0) 그리고나서 오류('색상 수준이 범위를 벗어남') 끝. 끝. 현지의 기능. hsvToRgb(h, s, v) 현지의 hn = (h / 60 - 6 * 수학.플로어(h / 360)) 현지의 안녕하세요. = 수학.플로어(hn) 현지의 hr = hn - 안녕하세요. 현지의 스네 = s / 100 현지의 = v * 255 / 100 현지의 p = * (1 - 스네); 현지의 q = * (1 - 스네 * hr); 현지의 t = * (1 - 스네 * (1 - hr)); 한다면 (안녕하세요. < 3) 그리고나서 한다면 (안녕하세요. == 0) 그리고나서 돌아가다 , t, p 그렇지 않으면 (안녕하세요. == 1) 그리고나서 돌아가다 q, , p 또 다른 돌아가다 p, , t 끝. 또 다른 한다면 (안녕하세요. == 3) 그리고나서 돌아가다 p, q, 그렇지 않으면 (안녕하세요. == 4) 그리고나서 돌아가다 t, p, 또 다른 돌아가다 , p, q 끝. 끝. 끝. cin [0, 255], 불연속성이 없는 경우 조건이 조정됨 -- http://entropymine.com/imageworsener/srgbformula/ 현지의 기능. 선형으로(c) 한다면 (c > 10.314300250662591) 그리고나서 돌아가다 수학.pow((c + 14.025) / 269.025, 2.4) 또 다른 돌아가다 c / 3294.6 끝. 끝. 현지의 기능. 비선형으로(c) 한다면 (c > 0.00313066844250063) 그리고나서 돌아가다 269.025 * 수학.pow(c, 1.0/2.4) - 14.025 또 다른 돌아가다 3294.6 * c 끝. 끝. 현지의 기능. srgbToCielchuvD65o2deg(r, g, b) 현지의 R = 선형으로(r) 현지의 G = 선형으로(g) 현지의 B = 선형으로(b) -- https://github.com/w3c/csswg-drafts/issues/5922 현지의 X = 0.1804807884018343 * B + 0.357584339383878 * G + 0.41239079926595934 * R 현지의 Y = 0.07219231536073371 * B + 0.21263900587151027 * R + 0.715168678767756 * G 현지의 Z = 0.01933081871559182 * R + 0.11919477979462598 * G + 0.9505321522496607 * B 현지의 L, C, h 한다면 (Y > 0.00885645167903563082) 그리고나서 L = 116 * 수학.pow(Y, 1/3) - 16 또 다른 L = Y * 903.2962962962962962963 끝. 한다면 ((r == g 그리고. g == b) 또는 L == 0) 그리고나서 C = 0 h = 0 또 다른 d = X + 3 * Z + 15 * Y 한다면 (d == 0) 그리고나서 C = 0 h = 0 또 다른 -- 0.19783...그리고 0.4631... (R,G,B) = (1,1,1)일 때 (X,Y,Z)로부터 추가 정밀도로 계산됩니다. 이 경우 (u,v) ≈ (0,0) 현지의 우리들 = 4 * X / d - 0.19783000664283678994 현지의 = 9 * Y / d - 0.46831999493879099801 h = 수학.atan2(, 우리들) * 57.2957795130823208768 한다면 (h < 0) 그리고나서 h = h + 360 그렇지 않으면 (h == 0) 그리고나서 h = 0 0이 양수인지 확인합니다. 끝. C = math.sqrt(우리들 * 우리들 + * ) * 13 * L 한다면 (C == 0) 그리고나서 C = 0 h = 0 끝. 끝. 끝. 돌아가다 L, C, h 끝. 현지의 기능. 보간 모수 선택(t) 한다면 (t > 1 또는 t < 0) 그리고나서 오류('보간 매개 변수가 범위를 벗어남') 끝. 끝. 현지의 기능. srgbMix(t, r0, g0, b0, r1, g1, b1) 현지의 tc = 1 - t 돌아가다 비선형으로(tc * 선형으로(r0) + t * 선형으로(r1)), 비선형으로(tc * 선형으로(g0) + t * 선형으로(g1)), 비선형으로(tc * 선형으로(b0) + t * 선형으로(b1)) 끝. 그라데이션을 생성하기 위한 함수, OKLCH에서 영감을 얻었지만 색역 매핑은 필요하지 않습니다. 현지의 기능. 색조 조정(Cielch)(h) 현지의 n = 180 * 수학.플로어(h / 180) 현지의 d = h - n 한다면 (d < 60) 그리고나서 d = 73.7 * d / 60 그렇지 않으면 (d < 120) 그리고나서 d = 0.6975 * d + 31.85 또 다른 d = 1.07416666666666666667 * d - 13.35 끝. 돌아가다 n + d 끝. 현지의 기능. 조정되지 않은시엘치에서 온 색조(h) 현지의 n = 180 * 수학.플로어(h / 180) 현지의 d = h - n 한다면 (d < 73.7) 그리고나서 d = 0.81411126187245590231 * d 그렇지 않으면 (d < 115.55) 그리고나서 d = 1.43369175627240143369 * d - 45.66308243727598566308 또 다른 d = 0.93095422808378588053 * d + 12.42823894491854150504 끝. 돌아가다 n + d 끝. 현지의 기능. 겟 라이트니스(r, g, b) 현지의 Y = 0.07219231536073371 * 선형으로(b) + 0.21263900587151027 * 선형으로(r) + 0.715168678767756 * 선형으로(g) 한다면 (Y > 0.00885645167903563082) 그리고나서 돌아가다 116 * 수학.pow(Y, 1/3) - 16 또 다른 돌아가다 Y * 903.2962962962962962963 끝. 끝. 현지의 기능. 밝기 조정(L, r, g, b) 한다면 (L >= 100) 그리고나서 돌아가다 255, 255, 255 끝. 현지의 Yc 한다면 (L > 8) 그리고나서 Yc = (L + 16) / 116 Yc = Yc * Yc * Yc 또 다른 Yc = L * 0.00110705645987945385 끝. 현지의 R = 선형으로(r) 현지의 G = 선형으로(g) 현지의 B = 선형으로(b) 현지의 Y = 0.07219231536073371 * B + 0.21263900587151027 * R + 0.715168678767756 * G 한다면 (Y > 0) 그리고나서 현지의 규모. = Yc / Y R = R * 규모. G = G * 규모. B = B * 규모. 현지의 cmax = 수학.max(R, G, B) 한다면 (cmax > 1) 그리고나서 R = R / cmax G = G / cmax B = B / cmax 현지의 d = 0.07219231536073371 * (1 - B) + 0.21263900587151027 * (1 - R) + 0.715168678767756 * (1 - G) 한다면 (d <= 0) 그리고나서 R = 1 G = 1 B = 1 또 다른 현지의 = 0.5 1은 동일한 가벼움을 제공합니다. 현지의 t = (Yc - 0.07219231536073371 * B - 0.21263900587151027 * R - 0.715168678767756 * G) / d R = R + * (1 - R) * t G = G + * (1 - G) * t B = B + * (1 - B) * t 끝. 끝. 또 다른 R = Yc G = Yc B = Yc 끝. 돌아가다 비선형으로(R), 비선형으로(G), 비선형으로(B) 끝. 현지의 기능. 보간의색조(t, r0, g0, b0, r1, g1, b1, 방향) 현지의 h0, s0, v0 = rgbToHsv(r0, g0, b0) 현지의 h1, s1, v1 = rgbToHsv(r1, g1, b1) 한다면 (s0 == 0) 그리고나서 h0 = h1 한다면 (v0 == 0) 그리고나서 s0 = s1 끝. 끝. 한다면 (s1 == 0) 그리고나서 h1 = h0 한다면 (v1 == 0) 그리고나서 s1 = s1 끝. 끝. 현지의 hn0 = h0 / 360 현지의 hn1 = h1 / 360 한다면 (방향 == 0) 그리고나서 현지의 dhn = hn1 - hn0 한다면 (dhn > 0.5) 그리고나서 dhn = dhn - 수학, 수학,수학(dhn - 0.5) 그렇지 않으면 (dhn < -0.5) 그리고나서 dhn = dhn - 수학.플로어(dhn + 0.5) 끝. 한다면 (dhn >= 0) 그리고나서 hn0 = hn0 - 수학.플로어(hn0) hn1 = hn0 + dhn 또 다른 hn1 = hn1 - 수학.플로어(hn1) hn0 = hn1 - dhn 끝. 그렇지 않으면 (방향 > 0) 그리고나서 hn1 = 1 - 수학, 수학,수학(hn1 - hn0) - 수학.플로어(hn0) + hn1 hn0 = hn0 - 수학.플로어(hn0) 또 다른 hn0 = 1 - 수학, 수학,수학(hn0 - hn1) - 수학.플로어(hn1) + hn0 hn1 = hn1 - 수학.플로어(hn1) 끝. 한다면 (t < 0) 그리고나서 t = 0 그렇지 않으면 (t > 1) 그리고나서 t = 1 끝. 현지의 tc = 1 - t 현지의 = tc * 색조 조정(Cielch)(360 * hn0) + t * 색조 조정(Cielch)(360 * hn1) 현지의 r, g, b = hsvToRgb(조정되지 않은시엘치에서 온 색조(), tc * s0 + t * s1, tc * v0 + t * v1) 현지의 L0 = 겟 라이트니스(r0, g0, b0) 현지의 L1 = 겟 라이트니스(r1, g1, b1) 돌아가다 밝기 조정(tc * L0 + t * L1, r, g, b) 끝. 현지의 기능. 정확한 형식 지정(가치, p) 돌아가다 string.형식('%.' .. p .. 'f', 가치) 끝. 현지의 기능. 분수 0 가져오기(p) 한다면 (p > 0) 그리고나서 돌아가다 '.' .. string.rep('0', p) 또 다른 돌아가다 '' 끝. 끝. 현지의 기능. 폴리믹스(t, 팔레트) 한다면 (t <= 0) 그리고나서 돌아가다 팔레트[1] 그렇지 않으면 (t >= 1) 그리고나서 돌아가다 팔레트[#팔레트] 끝. 현지의 n, f = 수학.modf(t * (#팔레트 - 1)) 한다면 (f == 0) 그리고나서 돌아가다 팔레트[n + 1] 또 다른 현지의 r0, g0, b0 = 16진수Rgb(팔레트[n + 1]) 현지의 r1, g1, b1 = 16진수Rgb(팔레트[n + 2]) 돌아가다 rgb To 헥스(srgbMix(f, r0, g0, b0, r1, g1, b1)) 끝. 끝. 동일한 원칙: https://colorspace.r-forge.r-project.org/articles/hcl_palettes.html 가장 어두운 색상은 WCAG AA 텍스트 대비를 생성하지 않습니다. 아마도 R의 Colorspace 패키지의 HCL Wizard를 사용하여 해결할 수 있을 것입니다. -- https://colorspace.r-forge.r-project.org/articles/approximations.html R의 Colorspace는 간단한 클리핑(chroma.js 및 colorio와 같은 대부분의 다른 컬러 라이브러리와 마찬가지로)을 통해 색역 매핑을 수행합니다. 이는 빠르지만 좋지 않습니다. 현지의 기능. 양조장 그라데이션(t, 팔레트) 현지의 색깔들 = { 스펙트럼의 = { '9E0142', 'D53E4F', 'F46D43', 'FDAE61', 'FE08B', 'FFFFBF', 'E6F598', 'ABDDA4', '66C2A5', '3288BD', '5E4FA2' }, rdylgn = { 'A50026', 'D73027', 'F46D43', 'FDAE61', 'FE08B', 'FFFFBF', 'D9EF8B', 'A6D96A', '66BD63', '1A9850', '006837' }, 라일부 = { 'A50026', 'D73027', 'F46D43', 'FDAE61', 'FE090', 'FFFFBF', 'E0F3F8', 'ABD9E9', '74ADD1', '4575B4', '313695' }, 피요그 = { '8E0152', 'C51B7D', 'DE77AE', 'F1B6DA', 'FDE0EF', 'F7F7F7', 'E6F5D0', 'B8E186', '7FBC41', '4D9221', '276419' }, brbg = { '543005', '8C510A', 'BF812D', 'DFC27D', 'F6E8C3', 'F5F5F5', 'C7EAE5', '80CDC1', '35978F', '01665E', '003C30' }, rdbu = { '67001F', 'B2182B', 'D6604D', 'F4A582', 'FDDBC7', 'F7F7F7', 'D1E5F0', '92C5DE', '4393C3', '2166AC', '053061' }, 프르그니 = { '40004B', '762A83', '9970AB', 'C2A5CF', 'E7D4E8', 'F7F7F7', 'D9F0D3', 'A6DBA0', '5AAE61', '1B7837', '00441B' }, 푸어 = { '7F3B08', 'B35806', 'E082214', 'FDB863', 'FE0B6', 'F7F7F7', 'D8DAEB', 'B2ABD2', '8073AC', '542788', '2D004B' }, 느릿느릿한 = { '67001F', 'B2182B', 'D6604D', 'F4A582', 'FDDBC7', 'FFFFFF', 'E0E0E0', 'BABA', '878787', '4D4D4D', '1A1A1A1A' }, 푸브건 = { 'FF7FB', 'ECE2F0', 'D0D1E6', 'A6BDB', '67A9CF', '3690C0', '02818A', '016C59', '014636' }, 연배의 = { 'FFFFCC', 'FFEDA0', 'FED976', 'FEB24C', 'FD8D3C', 'FC4E2A', 'E31A1C', 'BD0026', '800026' }, 야, 야, 야, 야, 야, 야, 야, 야, 야, 야! = { 'FFFFE5', 'FF7BC', 'FE391', 'FEC44F', 'FE9929', 'EC7014', 'CC4C02', '993404', '662506' }, 일그누부 = { 'FFFD9', 'EDF8B1', 'C7E9B4', '7FCDBB', '41B6C4', '1D91C0', '225 EA8', '253494', '081D58' }, gnbu = { 'F7FCF0', 'E0F3DB', 'CCEBC5', 'A8DDB5', '''7BCCC4'', '4EB3D3', '2B8CBE', '0868AC', '084081' }, 오르드 = { 'FF7EC', 'FE8C8', 'FDD49E', 'FDB84', 'FC8D59', 'EF6548', 'D7301F', 'B30000', '7F0000' }, 일그노 = { 'FFFFE5', 'F7FCB9', 'D9F0A3', 'ADD8E', '78C679', '41AB5D', '238443', '006837', '004529' }, = { 'F7FCFD', 'E5F5F9', 'CCECE6', '99D8C9', '66C2A4', '41AE76', '238B45', '006D2C', '00441B' }, = { 'FF7FB', 'ECE7F2', 'D0D1E6', 'A6BDB', '74A9CF', '3690C0', '0570B0', '045A8D', '023858' }, 뽀드득한 = { 'F7F4F9', 'E7E1EF', 'D4B9DA', 'C994C7', 'DF65B0', 'E7298A', 'CE1256', '980043', '67001F' }, rdpu = { 'FF7F3', 'FDE0DD', 'FCC5C0', 'FA9FB5', 'F768A1', 'DD3497', 'AE017E', '7A0177', '49006A' }, 부푸 = { 'F7FCFD', 'E0ECF4', 'BFD3E6', '9EBCDA', '8C96C6', '8C6BB1', '88419D', '810F7C', '4D004B' }, 오렌지 = { 'FF5EB', 'FE6CE', 'FDD0A2', 'FDAE6B', 'FD8D3C', 'F16913', 'D94801', 'A63603', '7F2704' }, 채소 = { 'F7FCF5', 'E5F5E0', 'C7E9C0', 'A1D99B', '74C476', '41AB5D', '238B45', '006D2C', '00441B' }, 블루스 = { 'F7FFFF', 'DEEBF7', 'C6DBEF', '9ECAE1', '6BAED6', '4292C6', '''2171B5'', '''08519C''', '08306B' }, 빨갱이들 = { 'FF5F0', 'FE0D2', 'FCBBA1', 'FC9272', 'FB6A4A', 'EF3B2C', 'CB181D', 'A50F15', '67000D' }, 자줏빛 = { 'FCFBFD', 'EFEDF5', '다대브', 'BCBDDC', '9E9AC8', '807DBA', '6A51A3', '54278F', '3F007D' }, 회색의 = { 'FFFFFF', 'F0F0F0', 'D9D9D9', 'BDBDBD', '969696', '737373', '525252', '252525', '000000' } } 돌아가다 폴리믹스(t, 색깔들[팔레트]) 끝. 현지의 기능. 소프트 시그모이드(x) 현지의 도끼 = 수학, 수학, 수학 시험답(x) 한다면 (도끼 > 0.000000000000000111) 그리고나서 돌아가다 x / (1 + 도끼) 또 다른 돌아가다 x 끝. 끝. 기능. p.16진수Rgb 트리플렛() 현지의 논병아리 = .논병아리 또는 :상위 항목 가져오기().논병아리 현지의 육각형의 = 논병아리[1] 한다면 (is Empty(육각형의)) 그리고나서 돌아가다 '' 끝. 현지의 r, g, b = 16진수Rgb(육각형의) 돌아가다 r .. ', ' .. g .. ', ' .. b 끝. 기능. p.hexToCmyk() 현지의 논병아리 = .논병아리 또는 :상위 항목 가져오기().논병아리 현지의 육각형의 = 논병아리[1] 한다면 (is Empty(육각형의)) 그리고나서 돌아가다 '' 끝. 현지의 p = numArgDefault(논병아리.정확, 0) 현지의 s = 논병아리.pct 부호 또는 '1' 현지의 c, m, y, k = rgbToCmyk(16진수Rgb(육각형의)) 현지의 fk = 정확한 형식 지정(k, p) 현지의 fc, fm, fy를 현지의 fracZero = 분수 0 가져오기(p) 한다면 (fk == 100 .. fracZero) 그리고나서 현지의 fZero = 0 .. fracZero fc = fZero fm = fZero fy를 = fZero 또 다른 fc = 정확한 형식 지정(c, p) fm = 정확한 형식 지정(m, p) fy를 = 정확한 형식 지정(y, p) 끝. 한다면 (s ~= '0') 그리고나서 돌아가다 fc .. '%, ' .. fm .. '%, ' .. fy를 .. '%, ' .. fk .. '%' 또 다른 돌아가다 fc .. ', ' .. fm .. ', ' .. fy를 .. ', ' .. fk 끝. 끝. 기능. p.16진수ToHsl() 현지의 논병아리 = .논병아리 또는 :상위 항목 가져오기().논병아리 현지의 육각형의 = 논병아리[1] 한다면 (is Empty(육각형의)) 그리고나서 돌아가다 '' 끝. 현지의 p = numArgDefault(논병아리.정확, 0) 현지의 h, s, l = rgbToHsl(16진수Rgb(육각형의)) 현지의 플류 = 정확한 형식 지정(l, p) 현지의 fs, fh 현지의 fracZero = 분수 0 가져오기(p) 현지의 fZero = 0 .. fracZero 한다면 (플류 == fZero 또는 플류 == 100 .. fracZero) 그리고나서 fs = fZero fh = fZero 또 다른 fs = 정확한 형식 지정(s, p) 한다면 (fs == fZero) 그리고나서 fh = fZero 또 다른 fh = 정확한 형식 지정(h, p) 한다면 (fh == 360 .. fracZero) 그리고나서 fh = fZero 핸들 라운딩을 360으로 끝. 끝. 끝. 돌아가다 fh .. '°, ' .. fs .. '%, ' .. 플류 .. '%' 끝. 기능. p.16진수ToHsv() 현지의 논병아리 = .논병아리 또는 :상위 항목 가져오기().논병아리 현지의 육각형의 = 논병아리[1] 한다면 (is Empty(육각형의)) 그리고나서 돌아가다 '' 끝. 현지의 p = numArgDefault(논병아리.정확, 0) 현지의 h, s, v = rgbToHsv(16진수Rgb(육각형의)) 현지의 에프브이 = 정확한 형식 지정(v, p) 현지의 fs, fh 현지의 fracZero = 분수 0 가져오기(p) 현지의 fZero = 0 .. fracZero 한다면 (에프브이 == fZero) 그리고나서 fh = fZero fs = fZero 또 다른 fs = 정확한 형식 지정(s, p) 한다면 (fs == fZero) 그리고나서 fh = fZero 또 다른 fh = 정확한 형식 지정(h, p) 한다면 (fh == 360 .. fracZero) 그리고나서 fh = fZero 핸들 라운딩을 360으로 끝. 끝. 끝. 돌아가다 fh .. '°, ' .. fs .. '%, ' .. 에프브이 .. '%' 끝. 기능. p.16진수 Cielch에 연결() 현지의 논병아리 = .논병아리 또는 :상위 항목 가져오기().논병아리 현지의 육각형의 = 논병아리[1] 한다면 (is Empty(육각형의)) 그리고나서 돌아가다 '' 끝. 현지의 p = numArgDefault(논병아리.정확, 0) 현지의 L, C, h = srgbToCielchuvD65o2deg(16진수Rgb(육각형의)) 현지의 fL = 정확한 형식 지정(L, p) 현지의 FC, fh 현지의 fracZero = 분수 0 가져오기(p) 현지의 fZero = 0 .. fracZero 한다면 (fL == fZero 또는 fL == 100 .. fracZero) 그리고나서 FC = fZero fh = fZero 또 다른 FC = 정확한 형식 지정(C, p) 한다면 (FC == fZero) 그리고나서 fh = fZero 또 다른 fh = 정확한 형식 지정(h, p) 한다면 (fh == 360 .. fracZero) 그리고나서 fh = fZero 핸들 라운딩을 360으로 끝. 끝. 끝. 돌아가다 fL .. ', ' .. FC .. ', ' .. fh .. '°' 끝. 기능. p.육각 혼합물() 현지의 논병아리 = .논병아리 또는 :상위 항목 가져오기().논병아리 현지의 육각형의 = 논병아리[1] 현지의 육각형 1 = 논병아리[2] 한다면 (is Empty(육각형의) 또는 is Empty(육각형 1)) 그리고나서 돌아가다 '' 끝. 현지의 t = 논병아리[3] 한다면 (is Empty(t)) 그리고나서 t = 0.5 또 다른 t = 수에 달하여(t) 현지의 아민 = numArgDefault(논병아리., 0) 현지의 최대의 = numArgDefault(논병아리.맥스., 100) 한다면 (최대의 == 아민) 그리고나서 t = 0.5 또 다른 t = (t - 아민) / (최대의 - 아민) 한다면 (t > 1) 그리고나서 t = 1 그렇지 않으면 (t < 0) 그리고나서 t = 0 끝. 끝. 끝. 현지의 r0, g0, b0 = 16진수Rgb(육각형의) 현지의 r1, g1, b1 = 16진수Rgb(육각형 1) 돌아가다 rgb To 헥스(srgbMix(t, r0, g0, b0, r1, g1, b1)) 끝. 기능. p.16진수 인터폴레이트() 현지의 논병아리 = .논병아리 또는 :상위 항목 가져오기().논병아리 현지의 육각형의 = 논병아리[1] 현지의 육각형 1 = 논병아리[2] 한다면 (is Empty(육각형의)) 그리고나서 돌아가다 육각형 1 그렇지 않으면 (is Empty(육각형 1)) 그리고나서 돌아가다 육각형의 끝. 현지의 t = 논병아리[3] 한다면 (is Empty(t)) 그리고나서 t = 0.5 또 다른 t = 수에 달하여(t) 현지의 아민 = numArgDefault(논병아리., 0) 현지의 최대의 = numArgDefault(논병아리.맥스., 100) 한다면 (최대의 == 아민) 그리고나서 t = 0.5 또 다른 t = (t - 아민) / (최대의 - 아민) 한다면 (t > 1) 그리고나서 t = 1 그렇지 않으면 (t < 0) 그리고나서 t = 0 끝. 끝. 끝. 현지의 방향 = numArgDefault(논병아리.방향, 0) 현지의 r0, g0, b0 = 16진수Rgb(육각형의) 현지의 r1, g1, b1 = 16진수Rgb(육각형 1) 돌아가다 rgb To 헥스(보간의색조(t, r0, g0, b0, r1, g1, b1, 방향)) 끝. 기능. p.육각 브루어 그라데이션() 현지의 논병아리 = .논병아리 또는 :상위 항목 가져오기().논병아리 현지의 친구 = arg기본값(논병아리.친구, '''비공식'''):더 낮게() 현지의 가치 = 논병아리[1] 현지의 t 한다면 (is Empty(가치)) 그리고나서 t = 0.5 또 다른 가치 = 수에 달하여(가치) 현지의 높은 = numArgDefault(논병아리.높은, 100) 현지의 저급의 = numArgDefault(논병아리.저급의, -100) 한다면 (is Empty(논병아리.저급의)) 그리고나서 한다면 (친구 ~= '''비공식''' 그리고. 친구 ~= 'rdylgn' 그리고. 친구 ~= 'rdylbu' 그리고. (친구:() ~= 4 또는 (친구 ~= 'rdgy' 그리고. 친구 ~= 'rdbu' 그리고. 친구 ~= 'poor' 그리고. 친구 ~= 'prgn' 그리고. 친구 ~= 'piyg' 그리고. 친구 ~= 'brbg'))) 그리고나서 저급의 = 0 끝. 끝. 한다면 (높은 == 저급의) 그리고나서 t = 0.5 그렇지 않으면 (isArgTrue(논병아리.inv)) 그리고나서 t = (높은 - 가치) / (높은 - 저급의) 또 다른 t = (가치 - 저급의) / (높은 - 저급의) 끝. 끝. 한다면 (isArgTrue(논병아리.컴프)) 그리고나서 t = 0.5 * 소프트 시그모이드(2 * t - 1) + 0.5 끝. 돌아가다 양조장 그라데이션(t, 친구) 끝. 돌아가다 p