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?但是这里有些凹凸型的似乎不能直接用)

编橙之家文章,

评论关闭