!从无序列表的坐标 Python 中绘制一个形状

Posted

技术标签:

【中文标题】!从无序列表的坐标 Python 中绘制一个形状【英文标题】:!Drawing a shape from unordered list of coordinates Python 【发布时间】:2019-03-05 22:30:45 【问题描述】:

是否有任何算法/函数可以获得这样的结果? 我不能使用凸包算法,因为不会绘制中心的矩形

如果这可以帮助坐标可以是包含整个图片的元组列表或矩阵的索引


更新

计算时间:4.14 s

点数:140

【问题讨论】:

但是如果列表是无序的,有n个!可能的形状,并且没有“固有的”有效形状。也许您可以使用旅行推销员 (TSP) 或启发式变体以最“sensical”的方式将这些联系起来,尽管这并不总是有效。 我不明白,你已经有坐标列表了吗?或者你想从头开始生成那个数字?到目前为止,您尝试了哪些方法来产生结果? @toom501:他有坐标,但不是(合理的)顺序。他想生成一个顺序,使其显示“规则”形状,而不是坐标之间的线条混乱。 例如,您可以从一个随机点开始,寻找最近的点,然后连接,然后搜索该点的最近点(不包括已经访问过的点)。但同样,这有时会失败。您也可以通过进行交换来进行后处理,以提高整体质量,但同样,它并不总是有效。 另一种方法是使用计算机视觉en.wikipedia.org/wiki/Active_contour_model 的主动轮廓建模(蛇形方法),这有时可以工作,但正如已经说过的:)某些情况下会失败。 【参考方案1】:
import turtle as t

points = [(0, 0), (0, 9), (9, 9), (9, 0), (0, 0)]

for p in points:
  print(p)
  x, y = p
  t.goto(x, y)

此代码遍历points 列表中的点。 Turtle 会到达我在points 列表中声明的每个点。 这段代码是一个正方形。

【讨论】:

replit.com/@EmmaGao8/SmoggyFuchsiaNotification#main.py

以上是关于!从无序列表的坐标 Python 中绘制一个形状的主要内容,如果未能解决你的问题,请参考以下文章

从无序点绘制连续线

在 python matplotlib 中绘制 (x, y) 坐标列表

3h精通OpenCV-绘制形状与文本

canvas绘制形状

如何在 SVG 中绘制这个形状?

画布,负坐标:绘制从画布开始并继续下去的路径是不是不好?