gpt4 book ai didi

将轮廓转换为二维 bool 数组的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:53 26 4
gpt4 key购买 nike

我想创建表示轮廓(边列表)给出的几何形状的二维数组。形状总是可以被分割成矩形基元并放置在网格上(就像在带有方格纸的笔记本中一样)。我的目标是创建代表网格的 2D bool 数组,哪些字段是:true - 如果网格单元在轮廓内(是形状的一部分),否则为 false。有谁知道如何实现这一目标?我为此花了几个小时,但仍然一无所获。

最佳答案

让 left(row, column) 为真当且仅当位于 (row, column) 的单元格在其左边界上有一条边(这很容易从边列表中计算出来)。然后:

for each row
inside = false
for each column
if (left(row, column) == true)
inside = !inside
isInside[row, column] = inside

isInside 是您的 bool 网格。该算法完全忽略水平边缘并假设形状是封闭的(因此“内部”和“外部”有意义)。如果形状不是封闭的,那么结果就没有意义,因为没有内部和外部。

这是最优的(因为它与输出的大小成线性关系)。

关于将轮廓转换为二维 bool 数组的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22478521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com