编程挑战:编写此网格的最简单方法?

时间:2012-09-08 19:57:30

标签: algorithm grid processing

制造它!看看帖子的底部!!!

世界上聪明的人......

我正在尝试使用Processing(java)绘制这个网格,但是我无法找到最聪明的方法。我基本上可以只绘制重复部分中的每个点,但我确信它有更好的方法。

grid

任何算法和语言都可以。我只需要看到这个概念。

修改

更新了徽标图片。这基本上表明我需要能够“知道”哪些区域是邻居,以便从网格中创建生成形状:

logo

编辑2

网格被设计师称为“准周期八折网格”。

编辑3

好的,那比我想象的要难。我已经取得了很多进展,你可以在这里找到代码:https://gist.github.com/3682600

我的子分割工作非常适合这两种形状,但是,当我开始递归时,会发生一些奇怪的事情。这是我现在的输出:

test

感谢任何帮助!

编辑4

好的,这变成了史诗般的任务。我已经发现当递归变得太深时问题就出现了。这是元素旋转的问题,或者是我无法弄清楚的另一件事。无论如何,这是我现在的工作草图:

working

编辑5

我做到了!我弄乱了立方体的旋转,这使得它全部搞砸了。我改变了它并且它正在工作:https://gist.github.com/3682600。那里可能有一些东西,但它完全有效。证明:

leve1 level2 level3

2 个答案:

答案 0 :(得分:4)

我不确定会有一个简单的方法,我开始寻找一个重复的部分,但它是准周期性的,或几乎重复。

enter image description here

绿色线条显然是对称的,但是用蓝色标记的图案实际上似乎并没有显示网格看起来像是从中心延伸得更远的图案。我可能错了。

答案 1 :(得分:3)

如果这确实是Ammann-Beenker tiling @n.m。在his comment中提到,然后您最容易使用提供的替代规则对此进行编码。从任意瓷砖开始,然后用较小的瓷砖替换它,直到您有足够数量的瓷砖用于您的目的。请注意,替换规则显然处理了定向半正方形。