使用特定图案平铺三角形网格

时间:2018-10-11 10:55:19

标签: algorithm

我有一个三角形对象数组,它们是等边三角形,并且对于x和y坐标为三角形的中心:

enter image description here

此点与a,b或c之间的距离为t_r。 该点与A,B或C之间的距离为t_R。 三角形的边是t_size

我想创建一个函数,将每个三角形按照此顺序放置在网格上:

enter image description here

因此,此函数获取数组中三角形的索引并更新其x和y位置。 您知道我该如何进行吗? 您应该注意,当三角形倒置时,它们的中心点仍然像是笔直的,但我只是将它们画成倒角。 例如,从第一个三角形到第二个三角形的平移不是正确的,而是正确的。

我真的不知道该怎么做。我试图在三角形的每个“级别”(颜色)中找到一个模式,但是我没有找到任何模式,在下一个三角形将针对每个三角形进行更改的那一面也都没有找到……

1 个答案:

答案 0 :(得分:1)

这似乎相对简单。从一个步骤到下一个步骤所需的跳跃次数有限,而且它们也是可以预见的。

让我们列举一下不同的跳跃:

  • 1到2(也可以在8到9中找到,或在4到5中倒置):(t_size * cos(30º),t_size * sin(30º))
  • 2到3(或任何其他垂直向上):(0,t_size)
  • 3到4(反射1到2):(-t_size * cos(30º),t_size * sin(30º))
  • 4到5(练习后留着)
  • 5至6(另一项练习)
  • 6到7(与从4到2一样;因此=-(d12 + d23 + d34),其中dXY是用于从X到Y的向量)
  • 6比1 = -d34

现在,让我们使用这些位移继续序列:

  • 第一环:d12,d23,d34,d45,d56,
  • 跳至下一圈:d67
  • 第二声振铃:d61,d12,d23, d12,d23 ,d34, d23,d34 ,d45, d34,d45 ,d56 , d45,d56 ,d61, d56,d61
  • 跳至下一个:d67

在下一个圆环中,您将扩展加粗的段(“沿该方向曲折”)以重复三次,在第n个圆环中,您将其扩展n次。