Hier sind fünf Bilder von Birnen und einer Stahlrinne :
Dies sind nur Vorschaubilder. Klicken Sie auf die Vorschaubilder, um sie in voller Größe anzuzeigen.
(Ich habe diese mit Algodoo gemacht .)
Diese Bildklasse hat immer die folgenden Eigenschaften:
- Sie sind immer 400 × 400 Pixel mit weißem Hintergrund. (Es kann sein, dass es nicht genau weiß ist, da SE-Bilder verlustbehaftet komprimiert werden.)
- Sie haben 1 bis 4 identische Birnen, jede gedreht und (fast) beliebig positioniert.
- Sie haben eine vertikale Stahlrutsche, die bis zum unteren Bildrand reicht.
- Mit Ausnahme des unteren Randes der Schurre berühren die Schurre und die Birnenbegrenzungsrahmen ( Beispiel für einen Begrenzungsrahmen ) niemals die Bildgrenzen oder überschreiten diese.
- Die Begrenzungskästen der Birnen überlappen sich weder noch die Rutsche.
- Die Birnen können unter dem geneigten Teil der Rutsche, wie in seine B , C und D . (So kann der Begrenzungsrahmen der Rutsche den Begrenzungsrahmen einer Birne überlappen.)
- Die Rutsche kann jede horizontale und vertikale Position einnehmen, solange genügend Platz vorhanden ist, damit alle Begrenzungskästen der Birnen frei darüber passen (es werden keine Fälle mit "kaum Passungen" getestet) und ein Teil des Säulenteils sichtbar ist.
Herausforderung
Schreiben Sie ein Programm, das ein solches Bild aufnimmt und ein weiteres 400 × 400-Bild ausgibt, wobei sich der Schacht an derselben Stelle befindet, die Birnen jedoch so positioniert sind, dass sie sich alle über dem Schacht befinden (damit sie hineinfallen und entsaftet werden können und so weiter).
Die Anforderungen für das Ausgabebild sind:
- Alle Birnen im Eingabebild müssen so positioniert werden, dass sie sich über dem Schacht zwischen der linken und rechten Kante des Trichters befinden. (Über einer Kante ist nicht in Ordnung.)
- Jede Birne muss ihren Drehwinkel beibehalten. (Sie sollten also die Birnen ausschneiden und einfügen, nicht neu zeichnen.)
- Die Birnen dürfen sich oder die Rutsche nicht überlappen oder berühren. (Die Birnenrahmen können sich jedoch überlappen.)
- Die Birnen dürfen die Bildgrenzen nicht berühren oder überschreiten.
Hier sind Beispiele für gültige Ausgaben für die fünf Beispielbilder:
Dies sind nur Vorschaubilder. Klicken Sie auf die Vorschaubilder, um sie in voller Größe anzuzeigen.
Beachten Sie, dass das Eingabebild für E bereits eine gültige Ausgabe war, die Neuanordnung der Birnen, wenn dies technisch nicht erforderlich ist, jedoch in Ordnung ist.
Einzelheiten
- Übernehmen Sie den Dateinamen des Bildes oder die Rohdaten des Bildes über stdin / command line / function call.
- Geben Sie das Bild in eine Datei mit dem Namen Ihrer Wahl aus oder geben Sie die Rohdaten der Bilddatei als Standardausgabe aus oder zeigen Sie das Bild einfach an.
- Jedes gängige verlustfreie Bilddateiformat kann verwendet werden.
- Grafiken und Bildbibliotheken können verwendet werden.
- Ein paar falsche Pixel hier und da (wegen Verlust oder so) sind keine große Sache. Wenn ich visuell nicht sagen kann, dass etwas nicht stimmt, ist es wahrscheinlich in Ordnung.
Der kürzeste Code in Bytes gewinnt. Tiebreaker ist der am höchsten gewählte Beitrag.
quelle
Antworten:
Python 2.7, 636 Bytes
BEARBEITEN : Entfernt jetzt den Alphakanal, bevor das Bild bearbeitet wird, und richtet die Birnen bei Bedarf in mehreren Zeilen aus
Produzierte Bilder:
und mit vertikalen Birnen (dauert auf meinem Computer ungefähr 3 Minuten):
quelle