作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个长度为 1 的水平/垂直段的无序列表,它们构建了一个或多个多边形。我现在需要找到每个多边形中所有连接角的列表。
例子:
[Horizontal (0,0), Vertical (2,0), Horizontal (1,0), Horizontal (2,2), Vertical (2,1)]
2 X--X
|
1 X
|
0 X--X--X
0 1 2
最佳答案
在我们去寻找角落之前,让我们退后一步。你想做什么?
I have an unordered list of horizontal/vertical segments of length 1, which build one or many polygons. I now need to find the list of all connected corners in each polygon.
The reason for this is, that the segments were stored in "Set"s before, in order to remove overlapping segments. This representation guarantees that there is only one segment (x,y)--(x+1,y).
Data.Set
工作,为什么删除重复项比无序列表更好?最后一点有点像赠品,因为
Data.Set
正是一个有序集合,因此通过为每个项目提供一个唯一排序的表示,您可以获得自动删除重复项和快速查找的综合好处。
Data.Set
也在这里帮助你?
Data.Set
做。
data Tree a = Leaf | Branch a (Tree a) (Tree a)
data Tree a = Leaf | Branch a (Tree a) (Tree a) (Tree a) (Tree a)
Data.Set
. Data.IntSet
. 关于data-structures - 用于在 Haskell 中遍历多边形段的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6308900/
我是一名优秀的程序员,十分优秀!