【发布时间】:2018-04-20 13:49:09
【问题描述】:
我想转换以下多边形列表:
[
%{height: 32, width: 32, x: 0, y: 0},
%{height: 32, width: 32, x: 32, y: 0},
%{height: 32, width: 32, x: 64, y: 0},
%{height: 32, width: 32, x: 256, y: 0},
%{height: 32, width: 32, x: 288, y: 0}
]
进入相邻多边形连接的列表,如下所示:
[
%{height: 32, width: 96, x: 0, y: 0},
%{height: 32, width: 64, x: 256, y: 0}
]
我尝试使用 Enum.reduce_while 如下:
Enum.reduce_while(polys, 0, fn poly, max_x ->
if poly.x - max_x <= 32, do: {:cont, max_x + 32}, else: {:halt, max_x}
end)
这可以给我第一个多边形,但是我如何获得后续的多边形,是否有可能一次性获得所有这些多边形?
【问题讨论】:
-
第二个和第三个多边形是否被认为是相邻的?他们的
x被64隔开,但宽度/高度只有32。 -
感谢@Dogbert 指出这个错误。我已经编辑了我的问题。唯一的间隙应该在第三个和第四个多边形之间。
标签: functional-programming elixir