Chr*_*ian 3 php grid coordinates
鉴于
$c = 2; // number of columns
$r = 3; // number of rows
Run Code Online (Sandbox Code Playgroud)
我需要找到x,y值的网格坐标,该坐标$i是特定单元格的索引(左上方->,->最下面的底部顺序).
通常,人们可以使用两个循环来解决这个问题.行的循环和列的另一个循环,但在我的情况下,我需要以数学方式执行此操作.
所以在上面的例子中,我会有类似的东西:
$grid = new Grid(2, 3);
// i x y
list($x, $y) = $grid->getCoordOfCell(0); // 0 0 0
list($x, $y) = $grid->getCoordOfCell(1); // 1 1 0
list($x, $y) = $grid->getCoordOfCell(2); // 2 0 1
list($x, $y) = $grid->getCoordOfCell(3); // 3 1 1
list($x, $y) = $grid->getCoordOfCell(4); // 4 0 2
list($x, $y) = $grid->getCoordOfCell(5); // 5 1 2
Run Code Online (Sandbox Code Playgroud)
假设,getCoordOfCell()将返回x,y网格单元的坐标数组$i.
不知道我在这里错过了什么,但我认为这就是它.
我想由此产生的数学公式将基于divs或mods,但我只是没有精神力量去思考这个问题.另外,我确信这个问题对未来的其他人有用.哦,虽然我在这里谈论PHP,但这可能与语言无关......
Cyp*_*ian 11
要获得正确的列,您有:
$i % NUMBER_ITEMS_IN_ROW
Run Code Online (Sandbox Code Playgroud)
并获得正确的行:
$i / NUMBER_ITEMS_IN_ROW
Run Code Online (Sandbox Code Playgroud)
在您的示例中,有3行2列(= =行中的项目),因此:
$i $x ($i%2) $y ($i/2)
0 0 0
1 1 0
2 0 1
3 1 1
4 0 2
5 1 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |