Ausgehend von drei Zahlenwerten - den roten, grünen und blauen Elementen einer Farbe (acht Bits pro Kanal, 0 bis 255) - muss Ihr Programm den Namen ausgeben der angegebenen Farbe .
Zum Beispiel;
Input: 255, 0, 0
Output: Red
oder;
Input: 80, 0, 0
Output: Dark Red
Dies ist ein Beliebtheitswettbewerb, also gewinnt jede Antwort, die die meisten Stimmen bis zum 1. Juli hat.
Inspiriert von: Zeigt die RGB-Eingangsfarbe an
popularity-contest
unclemeat
quelle
quelle
Antworten:
Python
Dies ist ein Python-Skript, das die Ergebnisse der xkcd- Farbumfrage verwendet , in der Randall Munroe Tausenden von Menschen genau dieselbe Frage gestellt hat. Er kam zu folgender Karte:
Die Umfrage enthält nur Daten zu vollständig gesättigten Farben (ich denke, nicht gesättigte Farben würden alle als "gräulich" bezeichnet). Dies bedeutet, dass wir einige farbbezogene Tricks ausführen müssen, um die vollständige Sättigung unserer Eingabe zu erzwingen.
Was ich hier gemacht habe, ist einfach die Eingangsfarbe in HSV umzuwandeln, die Sättigung anzukurbeln und es einen Tag zu nennen. Dies ist aus Sicht der Farbwahrnehmung wahrscheinlich nicht sehr korrekt, funktioniert aber hier gut genug - und es ist einfach genug, dass Sie nur die Standardbibliothek benötigen. Batterien in der Tat enthalten.
Das Skript erwartet, dass sich satfaces.txt von hier ( Spiegel ) im aktuellen Verzeichnis befindet.
Einige Beispielläufe:
Und hier sind die Farben:
Ich würde sagen, das ist ziemlich nah.
quelle
Update mit GUI!
Die Farbliste entnehme ich dieser Wikipedia-Seite (und den dazugehörigen Seiten).
Ich habe auch einige NLG hinzugefügt, um Ergebnisse wie "Bulgarische Rose mit etwas weniger Grün und Blau" und einige Varianten davon zu erzielen. Versuchen Sie mitzuspielen, um zu sehen, ob Sie anhand dieser Rückmeldungen die wahre "bulgarische Rose" erraten können. :)
Der Algorithmus versucht, die Farbe zu finden, die der Eingabe am nächsten kommt, wie durch den euklidischen Abstand definiert. Sie können also ein beliebiges Zahlentriplett eingeben und es wird die Farbe angezeigt, die dem Triplett am nächsten kommt.
(Der Code akzeptiert "durch Kommas getrennte", "durch Leerzeichen getrennte" oder "durch Kommas getrennte" Werte.)
Warnung
Dieser Code stellt eine Verbindung zu Wikipedia her und erfordert daher eine Internetverbindung, um das erste Mal ausgeführt zu werden (und die Informationen in eine Datei im selben Wörterbuch zu schreiben). In den folgenden Fällen wird jedoch aus der Datei gelesen. Wenn Sie die Offline-Version möchten, finden Sie den Code unter diesem Ideone-Link (mit Beispiellauf).
Code:
quelle
slightly more
zuwith a hint of
undslightly less
zu wechselnsubdued
.JavaScript
Die folgende Funktion wurde für Hundebenutzer geschrieben:
Für die raffinierteren Hunde da draußen:
quelle
else whimper();
- liebe esJavascript
quelle
Mathematica
Update: Es wurde ein Parameter hinzugefügt, mit dem die Anzahl der Farben festgelegt werden kann, die am nächsten angezeigt werden sollen. Die Standardeinstellung ist 5 Farben.
Ausgehend von den RGB-Werten einer unbenannten Farbe werden im Folgenden die
n
nächsten Farben aus einer Liste von 140 HTML-Farbnamen ermittelt. Anschließend werden die unbenannte Farbe und die 5 nächsten Nachbarn in einem 3-Feld mit Achsen für Rot, Grün und Blau dargestellt. In der Plotbezeichnung wird die nächstgelegene Farbe benannt und die RGB-Werte angegeben.Beispiele
Zeigen Sie die 5 nächsten Farben an:
Zeigen Sie die 15 nächsten Farben an:
quelle
CJam
Dadurch wird die Liste der Farben von xkcd abgerufen und die nächstgelegene gefunden.
Hinweis: Die raumgreifende Zeichenfolge in der Mitte ist tatsächlich eine Registerkarte.
Verwenden Sie zum Ausführen den Interpreter von http://sf.net/p/cjam
Beispiel:
Eingabe
147 125 0
Ausgabe
baby poop
quelle
R
R hat eine eingebettete Liste mit 657 Farbnamen für Plotzwecke. Der folgende Code nimmt Eingaben vom Benutzer entgegen, berechnet den Abstand zwischen dieser RGB-Eingabe und dem RGB-Wert dieser 657 Farben und gibt den Namen der nächstgelegenen aus.
Ungolfed:
Beispiele:
Bearbeiten: Gleiche Idee, aber unter Verwendung der Namensliste von colorHexa :
Beispiel:
quelle
readline
Einzeiler gemacht, so dass die folgende Codezeile nicht so gelesen wird, als ob es im interaktiven Modus stdin wäre. Ich habe das Wort "ungolfed" verwendet, um "eingerückt, mit Zeilenumbrüchen und Kommentaren" zu sagen. Wenn ich wirklich Golf gespielt hätte, hätte ich es nichtcolor_list
als Variablennamen verwendet.Perl
Erwartet
http://xkcd.com/color/rgb.txt
im aktuellen Verzeichnis. Zeigt fünf Farben mit einem schönen Prozentsatz an.Beispiellauf
Code
quelle
Scala
Mein Versuch - die Mörderfunktion ist, dass es keine Internetverbindung erfordert! (Ich hoffe, es ist nicht zu lang: D) Außerdem habe ich Chtulhu beim Vorbereiten der Farbdatenbank beschworen (weil ich eine Teilmenge von HTML mit Regex analysiert habe; der Regex und der Link zur Quelle befinden sich in Kommentaren)
Bearbeiten: Genauigkeit verbessert
Beispiellauf: http://ideone.com/e3n0dG
quelle
Nun, da ich es herumliegen hatte , ist es hier in Ziel-C:
quelle
Pharo Smalltalk
Legen Sie dies in einen Pharo Workspace und drucken Sie es aus .
Die Ergebnisse sind von unterschiedlicher Qualität. Alle dunkleren Farben werden als grau , dunkelgrau oder sehr dunkelgrau bezeichnet . Wahrscheinlich
Color
'sdiff:
Methode könnte besser sein.Für eine sehr einfache Visualisierung machen Sie :
quelle
SAS-Makro, basierend auf den (eher kuriosen) SAS V8-Farbnamen, wie hier dokumentiert: https://v8doc.sas.com/sashtml/gref/zgscheme.htm#zrs-hues
Beispieleingabe:
Beispielausgabe:
BEARBEITEN: Mit viel kompakterer Version aktualisiert.
XKCD-Version - eine krasse Abzocke der Top-Antwort, aber es ist eine nette kleine Demo der Dateinamen-URL-Engine und erfordert keine manuelle Vorbereitung einer CSV:
quelle
AC # -Lösung mit Linq und KnownColors von .NET
quelle
Tcl
Dies bezieht sich auf X11-Farben von
rgb.txt
. Auf meinem Ubuntu ist es in,/etc/X11/rgb.txt
obwohl ich weiß, dass es auf einigen Systemen ist/usr/lib/X11/rgb.txt
. Googlergb.txt
und lade es herunter, wenn du X11 nicht ausführst.Übergeben Sie den Farbcode als Befehlszeilenargument.
quelle
Python 2.6
Mit der Benutzeroberfläche:
Verschleiert (8.397 Bytes):
Nicht verschleiert (6.898 Bytes):
Ohne Benutzeroberfläche:
Verschleiert (6.543 Bytes):
Nicht verschleiert (5.050 Bytes):
quelle
Javascript
https://jsfiddle.net/SuperJedi224/goxyhm7a/
Einige Beispielergebnisse [Stand: 31. Juli] (die aufgeführten Farben sind der Reihe nach diejenigen, die sie als am nächsten und die zweitnächsten bestimmen; es sei denn, es wurde nur eine angegeben. In diesem Fall wurde festgestellt, dass es sich um eine handelt genaue Übereinstimmung):
Helles Marineblau / Stahlblau
Bronze / Hellgelb Orange
Topas / Birne
Schleimgrün / Olivgrün
Viridian / Emerald
quelle
VB.net
quelle