Python & Matplot: 怎么画简单的图形?
我想要根据给出的点来画出图形,比如
rectangle = [(0,0),(0,1),(1,1),(1,0)]
hexagon = [(0,0),(0,1),(1,2),(2,1),(2,0),(1,-1)]
l_shape = [(0,0),(0,3),(1,3),(1,1),(3,1),(3,0)]
concave = [(0,0),(0,3),(1,3),(1,1),(2,1),(2,3),(3,3),(3,0)]
for points in [rectangle, hexagon, l_shape, concave]:
xs, ys = zip(*points)
plt.plot(xs, ys, 'o')
plt.plot(xs, ys, '-')
automin, automax = plt.xlim()
plt.xlim(automin-0.5, automax+0.5)
automin, automax = plt.ylim()
plt.ylim(automin-0.5, automax+0.5)
plt.show()
有几个问题
-
怎么可以把
*zip
去掉?就是直接根据给出的点来画,而不需要拆成2组x,y坐标 -
怎么把图形画
完整
?(因为是从第1个点坐标循环到最后1个点,上面这些都是缺了最后1条线的) -
points
当中的点可不可以没有顺序?有了点就直接画出这些图形。(比如采用convex hull?但是这里有些凹凸型的似乎不能直接用)
跳坑的废柴
10 years, 1 month ago