我有一个多边形,既可以是规则的也可以是不规则的。我必须做多边形的偏移/缓冲。我需要通过一定量的偏移来拉伸多边形。形状应该保持不变。
答案 0 :(得分:1)
根据您的要求,问题有几种不同的解决方案。
一个好的起点是阅读本页右栏中的相关部分 两个好的是:
这两个问题(有很好的答案)会帮助你吗? 如果没有,请编辑您的问题,并提供有关您的具体问题的更多信息。
答案 1 :(得分:0)
乘以每个坐标whit偏移量
我知道,有人不会相信。 好的,这里是python中的完整源代码(我使用的是pythonxy)
import numpy as np
import matplotlib.pyplot as plt
x1, y1 = np.random.rand(2, 20)
plt.plot(x1,y1)
x2=x1*1.3
y2=y1*1.3
l=len(x1)
#calculate centers
cx1=sum(x1)/l
cy1=sum(y1)/l
cx2=sum(x2)/l
cy2=sum(y2)/l
#recenter polygon
x2=x2-(cx2-cx1)
y2=y2-(cy2-cy1)
plt.plot(x2,y2)
plt.show()
我做了示例whit随机行,但它与你的例子没有什么不同
http://img200.imageshack.us/img200/8615/grafm.png
这是有效的原因是因为每个点的乘法与拉伸轴相同。 我将中心计算为“平均值”并将一个中心移到另一个中心,这样位置看起来更自然