Skocz do zawartości
  • 0

Gradients


Cinu2421
 Udostępnij

Pytanie

on load:
    set {hex::*} to split "&0|&1|&2|&3|&4|&5|&6|&7|&8|&9|&a|&b|&c|&d|&e|&f" at "|"
 
function rgbToHex(values: numbers) :: string:
    loop {_values::*}:
        set {_r} to "%{_r} ? ""&x""%%{hex::%((loop-value - mod(loop-value, 16)) / 16 + 1)%} ? """"%%{hex::%mod(loop-value, 16) + 1%} ? """"%"
    return {_r}
function hslToRgb(h: number, s: number, l: number) :: integers: #
    set {_h} to {_h}/360
    if {_s} = 0:
        set {_r}, {_g} and {_b} to {_l}
    else:
        set {_q} to (({_l} * ({_s} + 1)) if {_l} < 0.5, else ({_l} + {_s} - {_l} * {_s}))
        set {_p} to (2 * {_l}) - {_q}
 
        set {_r} to hueToRgb({_p}, {_q}, {_h} + 1 / 3)
        set {_g} to hueToRgb({_p}, {_q}, {_h})
        set {_b} to hueToRgb({_p}, {_q}, {_h} - 1 / 3)
    return round(min(255, (255 * {_r}))), round(min(255, (255 * {_g}))) and round(min(255, (255 * {_b})))
 
function hueToRgb(p: number, q: number, t: number) :: number:
    add 1 to {_t} if {_t} < 0
    remove 1 from {_t} if {_t} > 1
    return {_p} + ({_q} - {_p}) * 6 * {_t} if {_t} < 1 / 6
    return {_q} if {_t} < 1/2
    return {_p} + ({_q} - {_p}) * (2 / 3 - {_t}) * 6 if {_t} < 2 / 3
    return {_p}
function gradient(input: string, color-from: integers, color-to: integers) :: string:
    loop {_color-from::*}:
        set {_i::%loop-index%} to round(({_color-to::%loop-index%} - loop-value) / length of {_input})
    loop length of {_input} times:
        set {_r} to "%{_r} ? """"%%rgbToHex({_color-from::*})%%subtext of {_input} from indices loop-number to loop-number%"
        set {_color-from::*} to ({_color-from::1} + {_i::1}), ({_color-from::2} + {_i::2}) and ({_color-from::3} + {_i::3})
    return colored {_r}
command /test [<text>]:
    trigger:
        #set {_string} to rgbToHex(255,255,255)
        #send "%{_string}% %arg-1%"
        broadcast gradient("%arg-1%",(255,0,0),(255,255,255))
    

Da rade ktos dodac do tego powiekszanie liter? &l

Edytowane przez Cinu2421
Odnośnik do komentarza
Udostępnij na innych stronach

2 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
4 godziny temu, Cinu2421 napisał:
on load:
    set {hex::*} to split "&0|&1|&2|&3|&4|&5|&6|&7|&8|&9|&a|&b|&c|&d|&e|&f" at "|"
 
function rgbToHex(values: numbers) :: string:
    loop {_values::*}:
        set {_r} to "%{_r} ? ""&x""%%{hex::%((loop-value - mod(loop-value, 16)) / 16 + 1)%} ? """"%%{hex::%mod(loop-value, 16) + 1%} ? """"%"
    return {_r}
function hslToRgb(h: number, s: number, l: number) :: integers: #
    set {_h} to {_h}/360
    if {_s} = 0:
        set {_r}, {_g} and {_b} to {_l}
    else:
        set {_q} to (({_l} * ({_s} + 1)) if {_l} < 0.5, else ({_l} + {_s} - {_l} * {_s}))
        set {_p} to (2 * {_l}) - {_q}
 
        set {_r} to hueToRgb({_p}, {_q}, {_h} + 1 / 3)
        set {_g} to hueToRgb({_p}, {_q}, {_h})
        set {_b} to hueToRgb({_p}, {_q}, {_h} - 1 / 3)
    return round(min(255, (255 * {_r}))), round(min(255, (255 * {_g}))) and round(min(255, (255 * {_b})))
 
function hueToRgb(p: number, q: number, t: number) :: number:
    add 1 to {_t} if {_t} < 0
    remove 1 from {_t} if {_t} > 1
    return {_p} + ({_q} - {_p}) * 6 * {_t} if {_t} < 1 / 6
    return {_q} if {_t} < 1/2
    return {_p} + ({_q} - {_p}) * (2 / 3 - {_t}) * 6 if {_t} < 2 / 3
    return {_p}
function gradient(input: string, color-from: integers, color-to: integers) :: string:
    loop {_color-from::*}:
        set {_i::%loop-index%} to round(({_color-to::%loop-index%} - loop-value) / length of {_input})
    loop length of {_input} times:
        set {_r} to "%{_r} ? """"%%rgbToHex({_color-from::*})%%subtext of {_input} from indices loop-number to loop-number%"
        set {_color-from::*} to ({_color-from::1} + {_i::1}), ({_color-from::2} + {_i::2}) and ({_color-from::3} + {_i::3})
    return colored {_r}
command /test [<text>]:
    trigger:
        #set {_string} to rgbToHex(255,255,255)
        #send "%{_string}% %arg-1%"
        broadcast gradient("%arg-1%",(255,0,0),(255,255,255))
    

Da rade ktos dodac do tego powiekszanie liter? &l

Kod jest dość skomplikowany, ale możesz spróbować w ten sposób:

set {_r} to "%{_r} ? """"%%rgbToHex({_color-from::*})%&l%subtext of {_input} from indices loop-number to loop-number%"

To jest linijka nr 32.

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...