0

今日、カレンダーを開いたところ、パズルが入っていました。ピースが6個あって、立方体にしないといけないのかな… 解こうとしたら大失敗。そこで、プログラミングで解決してみようと思ったのですが……。

私はそれらを多角形にしました(それが良い考えだったかどうかはわかりません)が、それらを回転させる方法や、形状が他の形状と衝突するかどうかを確認する方法がわかりません。

形状は次のとおりです。

ここに画像の説明を入力

TL;DR: これらの図形のすべての可能な組み合わせをチェックして、それらが立方体を作るかどうかを確認する方法を探しています。言い換えれば、ポリゴン (またはこれらのピースを表す何か) を回転させて交差をチェックするにはどうすればよいでしょうか?

4

1 に答える 1

2

それらをポリゴンにすることは、この問題の正しい抽象化ではありません。

ほら、あなたが持っているのは立方体の6つの側面ですが、今度はそれらを回転させる方法を理解する必要があります。各ポリゴンのエッジには、オンまたはオフの12個の小さな正方形があり、隣の正方形と一致する必要があります。これは非常に離散的な問題です。

立方体全体には、8(頂点)+ 12 * 2(エッジ)の小さな立方体があります。

各面は、立方体に配置されると、それらの小さな立方体の一部を占有します。

1)指定された方向で指定された面の立方体全体に面をマッピングするマッピングを作成する必要があります。2)小さな立方体が2回占有されていない構成を検索します。

于 2012-12-06T17:41:13.237 に答える