Dados três valores numéricos - sendo os elementos Vermelho, Verde e Azul de uma cor (oito bits por canal, 0 a 255) - seu programa deve gerar o nome da cor especificada.
Por exemplo;
Input: 255, 0, 0
Output: Red
ou;
Input: 80, 0, 0
Output: Dark Red
Este é um concurso de popularidade; portanto, a resposta que tiver mais votos no primeiro de julho vence.
Inspirado por: mostra a cor RGB de entrada
popularity-contest
desgrudar
fonte
fonte
Respostas:
Pitão
Este é um script Python que usa os resultados do Color Survey da xkcd , no qual Randall Munroe fez a milhares de pessoas exatamente a mesma pergunta. Ele chegou ao seguinte quadro:
A pesquisa possui apenas dados sobre cores totalmente saturadas (acho que cores não saturadas seriam todas descritas como "acinzentadas"). Isso significa que precisamos fazer alguns truques relacionados a cores para forçar nossa entrada a ficar totalmente saturada.
O que eu fiz aqui é apenas converter a cor de entrada em HSV, aumentar a saturação e encerrar o dia. Provavelmente, isso não está muito correto do ponto de vista da percepção de cores, mas funciona bem o suficiente aqui - e é simples o suficiente para que você só precise da biblioteca padrão. Pilhas incluídas de fato.
O script espera que satfaces.txt, daqui ( espelho ), esteja no diretório atual.
Alguns exemplos são executados:
E aqui estão as cores:
Eu diria que é bem próximo.
fonte
Atualize com GUI!
Pego a lista de cores desta página da Wikipedia (e as páginas relacionadas).
Também incluí alguns GNL para produzir resultados como "Rosa da Bulgária com um pouco menos de verde e azul" e algumas variantes. Tente brincar junto para ver se você consegue adivinhar a verdadeira "Rosa da Bulgária" usando esses feedbacks. :)
O algoritmo tentará encontrar a cor mais próxima da entrada, conforme definido pela distância euclidiana. Assim, você pode inserir qualquer número trigêmeo e ele fornecerá a cor mais próxima desse trigêmeo.
(o código aceita valores "separados por vírgula", "separados por espaço" ou "separados por vírgula")
Aviso
Esse código se conecta à Wikipedia e, portanto, requer conexão com a Internet para executar pela primeira vez (e gravar as informações em um arquivo no mesmo dicionário). Os tempos subsequentes, porém, serão lidos no arquivo. Se você deseja a versão offline, o código está disponível neste link Ideone (com exemplo de execução).
Código:
fonte
slightly more
parawith a hint of
eslightly less
parasubdued
.Javascript
A seguinte função é escrita com usuários caninos em mente:
Para os cães mais refinados por aí:
fonte
else whimper();
- ame-oJavascript
fonte
Mathematica
Atualização: Adicionado um parâmetro para definir o número de cores mais próximas a serem exibidas. O padrão é 5 cores.
Dados os valores RGB de uma cor sem nome, o seguinte encontra as
n
cores mais próximas de uma lista de 140 nomes de cores HTML. Em seguida, plota a cor sem nome e seus 5 vizinhos mais próximos em um espaço de 3, com eixos para vermelho, verde e azul. No rótulo da plotagem, nomeia a cor mais próxima e fornece seus valores RGB.Exemplos
Exiba as 5 cores mais próximas:
Exiba as 15 cores mais próximas:
fonte
CJam
Isso obtém a lista de cores do xkcd e encontra a mais próxima.
Nota: a cadeia de aparência espacial no meio é na verdade uma guia.
Para executá-lo, use o intérprete em http://sf.net/p/cjam
Exemplo:
147 125 0
Saída de entrada
baby poop
fonte
R
R possui uma lista incorporada de 657 nomes de cores para fins de plotagem. O código a seguir recebe a entrada do usuário e calcula a distância entre essa entrada rgb e o valor rgb dessas 657 cores e gera o nome da mais próxima.
Ungolfed:
Exemplos:
Edit: Mesma idéia, mas usando a lista de nomes de colorHexa :
Exemplo:
fonte
readline
não leia a seguinte linha de código como se fosse stdin no modo interativo. Eu usei a palavra "ungolfed" para dizer "recuado, com quebras de linha e comentários". Se eu realmente tivesse jogado golfe, não teria usadocolor_list
como nome da variável.Perl
Espera
http://xkcd.com/color/rgb.txt
no diretório atual. Exibe as cinco cores mais próximas com boa porcentagem.Exemplo de execução
Código
fonte
Scala
Minha tentativa - o recurso matador é que ele não requer conexão com a Internet! (Espero que não demore muito: D) Além disso, convoquei o Chtulhu ao preparar o banco de dados de cores (porque analisei um subconjunto de HTML com regex; o regex e o link para a fonte estão nos comentários)
Editar: precisão aprimorada
Exemplo de execução: http://ideone.com/e3n0dG
fonte
Bem, desde que eu tinha que colocar ao redor , aqui está em Objective-C:
fonte
Pharo Smalltalk
Coloque isso em um espaço de trabalho do Pharo e imprima-o .
Os resultados são de qualidade mista. Todas as cores mais escuras são nomeadas como cinza , cinza escuro ou cinza muito escuro . Provavelmente
Color
, odiff:
método poderia ser melhor.Para uma visualização muito simples, faça :
fonte
Macro SAS, com base nos nomes de cores (bastante peculiares) do SAS V8, conforme documentado aqui: https://v8doc.sas.com/sashtml/gref/zgscheme.htm#zrs-hues
Entrada de amostra:
Saída de amostra:
EDIT: Atualizado com versão muito mais compacta.
Versão XKCD - uma imitação flagrante da resposta principal, mas é uma bela demonstração do mecanismo de URL do nome do arquivo e não requer a preparação manual de um CSV:
fonte
Solução AC # com Linq e KnownColors do .NET
fonte
Tcl
Faz referência a cores X11 de
rgb.txt
. No meu Ubuntu está,/etc/X11/rgb.txt
embora eu saiba que em alguns sistemas ele está/usr/lib/X11/rgb.txt
. Googlergb.txt
e faça o download se você não executar o X11.Passe o código de cores como argumento da linha de comando.
fonte
Python 2.6
Com interface do usuário:
Ofuscado (8.397 bytes):
Não ofuscado (6.898 bytes):
Sem interface do usuário:
Ofuscado (6.543 bytes):
Não ofuscado (5.050 bytes):
fonte
Javascript
https://jsfiddle.net/SuperJedi224/goxyhm7a/
Alguns exemplos de resultados [em 31 de julho] (as cores listadas são, em ordem, aquela que determina como a mais próxima e a que determina como a segunda mais próxima; exceto onde apenas uma é fornecida, nesse caso, foi determinada como sendo uma Combinação exata):
Azul marinho brilhante / azul aço
Bronze / Bronzeado Amarelo Laranja
Topázio / pêra
Verde Limo / Verde Oliva
Viridian / Emerald
fonte
VB.net
fonte