Für viele Spiele, die auf einem Gitter gespielt werden, sind Sechsecke die eindeutig überlegene Wahl. Leider haben viele kostenlose Spielekunstseiten nur nahtlose Kachelsätze für quadratische Karten. Bei einem früheren Projekt habe ich einige davon verwendet und sie manuell in Sechsecke konvertiert.
Allerdings bin ich in meinem Alter faul geworden. Es sollte einfach sein, den Prozess mit einem kleinen Skript zu automatisieren.
Allerdings bin ich in meinem Alter faul geworden. Also lagere ich es an Sie aus und verkleide es als Code-Golf-Herausforderung 1 .
Eingang
Die Eingabe ist ein quadratisches Bild in jedem gängigen Bildformat, das 24-Bit-RGB-Farben unterstützt. Sie können anstelle der Bilddaten auch einen Dateinamen als Eingabe verwenden.
Sie können davon ausgehen, dass das Bild quadratisch ist und die Seitenlänge ein Vielfaches von vier ist.
Ausgabe
Die Ausgabe ist die Eingabe-Kachel, wird jedoch in ein Sechseck umgewandelt (das Bild selbst ist quadratisch mit transparenten Bereichen). Sie können es in einer Datei speichern oder auf dem Bildschirm anzeigen.
Auch hier kann jedes gängige Bildformat verwendet werden. Wenn das von Ihnen verwendete Format Transparenz unterstützt, müssen die Hintergrundbereiche transparent sein. Wenn dies nicht der Fall ist, können Sie die Farbe # FF00FF (diese schreckliche Fuchsie) als Ersatz verwenden.
Methode
Wie machen wir das? Die Methode, die ich 2 verwende, drückt das Bild ein wenig vertikal zusammen, aber insgesamt sieht es für die meisten Dinge ziemlich gut aus. Wir werden ein Beispiel mit diesem Eingabebild machen:
- Skalieren: Skaliert das Bild auf ein Verhältnis von 3: 2. Da es sich bei unseren Bildern um Quadrate handelt, skalieren Sie sie einfach auf 75% Breite und 50% Höhe. Unsere Beispieleingabe ist 200x200, daher erhalten wir dieses 150x100-Bild:
- Kacheln: Legen Sie Kopien Ihres skalierten Bildes in einem 2x2-Raster ab:
- Zuschneiden: Ergreifen Sie ein Sechseck von geeigneter Größe an einer beliebigen Stelle in diesem 2x2-Raster. Dieses Sechseck ist zur Erleichterung des Kachelns nicht gerade regelmäßig. Nachdem Sie ein Quadrat der Originalgröße (hier 200x200) zugeschnitten haben, schneiden Sie die Ecken aus. Die Schnittlinien sollten von (ungefähr) der Mitte jeder linken / rechten Seite bis zu einem Viertel vom Rand oben / unten verlaufen:
Und das ist deine Ausgabe!
Hier ist ein Beispiel, wie es aussehen könnte, wenn es gekachelt ist (hier herausgezoomt):
Dies ist Codegolf, also gewinnt der kürzeste Code in Bytes. Es gelten Standardlücken usw.
1 Fühlen Sie sich frei, dies zu glauben oder nicht.
2 Methode eins von dieser hilfreichen Site.