【问题标题】:Tiling algorithm for recalculation position of vertexes计算顶点位置的平铺算法
【发布时间】:2012-03-23 20:09:06
【问题描述】:


我正在寻找一种用于重新计算向量位置的算法,该算法定义了代表一个图块的多边形。

我有瓷砖图案——一个由 16 个顶点定义的多边形,这些顶点位于顶点域中。 例如,我有一个正方形(或菱形或任何其他可以与同一个多边形组合在一起的多项式)。

x - x - x - x - x
|               |
x               x
|               |
x               x
|               |
x               x
|               |
x - x - x - x - x

这个图案代表一个瓷砖。如果我用一个顶点移动(改变它的位置),我必须重新计算其他顶点的位置,以便让图块与其他图块组合在一起。
1) 是否存在已经解决该问题的算法?
2) 什么是好的基本模式? Square 太简单了。
我听说图案的对称形状很好,因为它更容易重新计算。

编辑: 动机是在一些位图上绘制图块。就像浴室里的瓷砖一样,它们也必须拼在一起。

【问题讨论】:

  • 对不起,什么?为什么不能只将每个顶点在同一方向移动相同的量?
  • 移动一个顶点的原因是为了改变形状;)
  • 那么,您问是否有一种算法可以确定一组特定的瓷砖是否可以平铺飞机?我想你会非常失望......
  • 或者,每块瓷砖都有相同的形状,你改变了一个边缘,你想知道如何改变其他边缘来保持它平铺?

标签: c# algorithm graphics 2d


【解决方案1】:

如果我理解您的问题:您从一个穿过用于平铺的一些顶点(水平和垂直对称)的正方形开始。您移动了其中一些顶点,并想知道如何保持生成的形状平铺?

在这种情况下,每次移动顶点时,将垂直和水平镜像的顶点沿相同方向移动相同的量。

例如,如果您将右下角的顶点向下移动 2 和向右 1,那么您还应该将左上角的顶点向下移动 2 和向右 1。这将在左上角创建一个紧贴的“洞”右下角的新尖边。

【讨论】:

    【解决方案2】:

    关于基本的可平铺形状:

    正方形、长方形、六边形是很好的基本可平铺形状。

    等边三角形可以平铺,但需要翻转。

    还有更复杂的图案,其中瓷砖不相同。 IE。八边形+正方形。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-12
      • 2013-02-15
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多