1
シュートアピアリング
梨とスチール シュートの 5つの画像を次に示します。 A:B:C:D:E: これらはサムネイルのみです。クリックするとフルサイズになります。 (Algodooで作成しました。) このクラスの画像には、常に次のプロパティがあります。 背景は常に400×400ピクセルです。(SEイメージは非可逆圧縮されるため、完全に白ではない場合があります。) それらは1〜4個の同一の梨を持ち、それぞれが(ほぼ)任意の方法で回転して配置されます。 彼らは、画像の下部に到達する1つの垂直スチールシュートを持っています。 シュートの下部を除いて、シュートと梨の境界ボックス(境界ボックスの例)は決して画像境界に触れたり、境界から出たりすることはありません。 梨のバウンディングボックスが互いに重なることも、シュートと重なることもありません。 B、C、およびDのように、梨はシュートの傾斜部分の下にある場合があります。(したがって、シュートのバウンディングボックスはナシのバウンディングボックスと重なる場合があります。) シュートは、ナシのすべてのバウンディングボックスがその上に自由に収まるだけの十分なスペースがあり(「ベアフィット」ケースはテストされない)、コラム部分の一部が見える限り、任意の水平および垂直位置にできます。 チャレンジ そのような画像を取り込み、同じ場所にシュートがある別の400×400画像を出力するプログラムを作成しますが、梨はすべてシュートの上にくるように再配置されます(そうすれば、それらはシュートに落ちてジュースになります)。 出力イメージの要件は次のとおりです。 入力画像内のすべての梨は、シュートの上、漏斗の左端と右端の間にあるように再配置する必要があります。(エッジを超えることはできません。) 各ナシは、回転角度を維持する必要があります。(したがって、梨を切り直して貼り付けるのではなく、梨を切り取って貼り付ける必要があります。) 梨は互いに重なり合ったり、互いに触れたり、シュートに触れたりしてはなりません。(ただし、梨の境界ボックスは重なる場合があります。) 梨が触れたり、画像の境界から出たりしてはいけません。 5つのサンプル画像の有効な出力の例を次に示します。 A:B:C:D:E: これらはサムネイルのみです。クリックするとフルサイズになります。 Eの入力画像はすでに有効な出力でしたが、技術的に必要ないときに梨を再配置するだけで十分であることに注意してください。 詳細 stdin /コマンドライン/関数呼び出しを使用して、画像のファイル名または生の画像データを取得します。 選択した名前のファイルに画像を出力するか、生の画像ファイルデータを標準出力に出力するか、単に画像を表示します。 一般的なロスレス画像ファイル形式を使用できます。 グラフィックおよび画像ライブラリを使用できます。 あちこちにあるいくつかの不正確なピクセル(損失など)が大したことではありません。視覚的に間違っていることがわからない場合は、おそらく大丈夫です。 バイト単位の最短コードが優先されます。Tiebreakerは、最も投票数の多い投稿です。