Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我今天打开日历,里面有一个谜题。有六块,我想我必须把它们做成一个立方体……我试图解决它,但失败了。所以我决定尝试用编程来解决它......
我把它们做成多边形(不确定这是否是个好主意),但不知道如何旋转它们和/或检查任何形状是否与任何其他形状发生碰撞。
形状是这些:
TL;DR:我正在寻求帮助,检查这些形状的每一种可能组合,看看它们是否构成立方体。换句话说,我如何旋转和检查多边形(或代表这些部分的其他东西)是否相交?
将它们制成多边形并不是这个问题的正确抽象。
看,你所拥有的是立方体的 6 个面,但现在你必须弄清楚如何旋转它们。每个多边形的边缘都有 12 个小方块,它们要么开要么关,并且必须与旁边的小方块匹配。这是一个非常离散的问题。
整个立方体有8个(顶点)+ 12 * 2(边)边上的小立方体。
每个面,当放入立方体时,将占据一些小立方体。
您需要 1) 在给定的方向上将面映射到给定面上的整个立方体 2) 搜索没有小立方体被占用两次的配置。