有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java排列的矩形算法和研究它的基础上

(我不确定这是否符合CodeGolf的条件,因为尽管它听起来很抽象,但我确实有它的用途……xD如果有,请告诉我,我会将它添加到标签中……)

这个问题由两部分组成:一部分是关于寻找合适的公式/算法,另一部分是关于使用该算法处理我最终感兴趣的基本需求

假设有一个足够大的二维字段,需要用矩形填充。由于内存限制,无法预先生成这些非重叠矩形的位置(大小不同,受最小和最大大小的限制)。这些矩形本身不受字段所暗示的“网格”的约束;一个随机矩形可以旋转到任何角度:30度、45度或87度或任何角度,只要它不与任何其他矩形重叠就可以。矩形的“密度”相当低,因此在它们之间留下大量空白。(如果算法可以很容易地调整到这个密度,那将非常有趣!)生成矩形位置是单个输入64位“种子”的结果,其中不同的输入应导致矩形排列布局中的不同结果。最后,输出不应过于网格化或具有可识别的规则性;从视觉上讲,如果被策划,这应该是一个相当混乱的安排

// Note: This algorithm would not actually generate or produce to start
// off with. The logic is concentrated in the questions that follow below.
// Please note: there is NO initialization phase of any sort.

视觉辅助:enter image description here

现在,如果知道某个(x,y)坐标和生成的“种子”,我如何确定该坐标是否在矩形内?如何确定所述矩形的角?最后,如何得到最近矩形的中心坐标

public Boolean isInsideRectangle(int x, int y, long seed) { ... }

public Boolean isCornerOfRectangle(int x, int y, long seed) { ... }

public Point getCenterOfNearestRectangle(int x, int y, long seed) { ... }

我根本不知道如何处理这个问题,否则我会包含一些代码。数学世界是一个我不太精通的世界。因此,虽然我非常欢迎代码,但解释更受欢迎。:-)

(先发制人的“不,这不是家庭作业或诸如此类的事情。”需要包括在内:这只是个人项目的一个方面。)


共 (0) 个答案