【发布时间】:2014-02-12 11:37:08
【问题描述】:
假设您有一个二维数组,就像经常用于组织瓦片地图的数组一样,1 代表实心瓦片。
var map = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],
[0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],
[0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],
[0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
];
我想将此形状转换为多边形的点,而不是方形瓷砖。数组中的每个 1 都有一个设置的宽度和高度,就像瓦片图一样,但我只想要将形状重新创建为实心多边形所需的角点。当 1 在数组中像对角线一样时,我还想要对角线斜率而不是阶梯状效果。我一直在寻找答案,但我无法找出最好的方法,有什么想法吗?
谢谢。
【问题讨论】:
-
谷歌
marching squares
标签: javascript arrays algorithm polygon tile