使用Python列表创建多边形的坐标

时间:2019-07-03 21:32:13

标签: python

我想设计一种算法,可以为方形多边形创建坐标(角坐标)。参见下图:

enter image description here

到目前为止,我已经写了一些代码,但只针对X轴,我认为它可以改进。

我想要的输出应该是两个嵌套列表,一个用于X,一个用于Y。应该有25个多边形(5x5):

X_list = [[0, 5, 5, 0], [5, 10, 10, 5], [10, 15, 15, 10], ...]
Y_list = [[0, 0, 5, 5] , [0, 0, 5, 5], [0, 0, 5, 5], ...]

这是我的代码。如何使其工作,以便它也可以在Y轴上制作多边形。

max_x = 20
max_y = 20

x = 0
y = 0

xlist = []
ylist = []

lon = []
lad = []
while x < max_x and y < max_y:

    xlist = []
    ylist = []

    x = x
    y = y
    xlist.append(x)
    ylist.append(y)

    x += 5
    y = y
    xlist.append(x)
    ylist.append(y)

    x = x
    y += 5
    xlist.append(x)
    ylist.append(y)

    x -= 5
    y = y
    xlist.append(x)
    ylist.append(y)
    x += 5
    y -= 5

    lon.append(xlist)
    lad.append(ylist)

print(lon)
print(lad)

1 个答案:

答案 0 :(得分:2)

这是使用列表推导的简单解决方案。

x_count = 5
y_count = 5
step = 5

x_list = y_count * [[i*step,(i+1)*step,(i+1)*step,i*step] for i in range(x_count)]
y_list = [[i*step,i*step,(i+1)*step,(i+1)*step] for i in range(y_count) for j in range(x_count)]