如何编写程序来绘制这样的平铺图片?

时间:2015-11-16 08:59:58

标签: algorithm math graphics

我想编写一个程序来绘制一张覆盖平面不规则四边形平面的图片,就像这样:

enter image description here

但是,我不知道相关的算法,例如,我应该以哪种顺序绘制边缘?

有人可以为我指明方向吗?

1 个答案:

答案 0 :(得分:2)

道歉,在我之前的回答中,我误解了这个问题。

这是对算法的一种尝试(不一定是最佳方式,但 a 方式)。您所需要的只是渲染多边形和基本旋转的能力。

enter image description here

如果您不希望翻转标签,请单独绘制它们(标签可以存储在顶点中,例如,与多边形点一起旋转,但直接绘制为文本)。

修改

我收到了一个关于"开始使用任意多边形" 步骤的问题。我没有非常清楚地传达这一步骤,因为我实际上只打算从提供的图表中建议任意多边形,而不是世界上任何任意多边形。

但是,这应该至少适用于任意四边形,包括凹面四边形,如下所示:

enter image description here

但是,我担心我缺乏适当的背景来证明其原因。也许更多数学精通的人可以帮助证明。 我认为解决证明的一种方法是首先从所有平铺边缘都是流形的概念开始 - 考虑到我们在每个边缘生成相邻多边形以生成平铺结果,这是给定的。然后我们可以证明每个2价边界顶点将成为这个操作的结果的4价顶点(因为它的两个边缘将变为多面体,并且引入两个新的顶点边缘到混合 - 这似乎是向我证明最困难的部分)。最后一步可能是证明每个4价顶点的角度总和总是加起来为360度。