繁体   English   中英

以数学方式将索引转换为网格坐标

Convert index to grid coordinate mathematically

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

鉴于

$c = 2; // number of columns
$r = 3; // number of rows

我需要找到$i值的x,y网格坐标,它是特定单元格的索引(左->右,顶->底序)。

通常,人们可以使用两个循环来解决这个问题。 行的循环和列的另一个循环,但在我的情况下,我需要以数学方式执行此操作。

所以在上面的例子中,我会有类似的东西:

$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

假设, getCoordOfCell()将返回网格单元$ix,y坐标数组。

不知道我在这里错过了什么,但我认为这就是它。

我猜测得到的数学公式将基于divmod s,但我只是没有精神力量去思考这个问题。 另外,我确信这个问题对未来的其他人有用。 哦,虽然我在这里谈论PHP,但这可能与语言无关......

1 个回复

要获得正确的列,您有:

 $i % NUMBER_ITEMS_IN_ROW

并获得正确的行:

 $i / NUMBER_ITEMS_IN_ROW

在您的示例中,有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
2 数学:将坐标系转换为其他系统

我想将1200x1000像素的地图转换为iPhone屏幕坐标(480x360),这样我就可以对用户触摸屏幕的位置进行一些操作。 所以我们假设我在地图上找到了'玩家'并且他在1200x1000的位置然后我希望它对应于iPhone屏幕上的位置:1200x1000 = 480x360。 我可以使用 ...

3 数学将坐标转换为PHP中的像素

这是我到目前为止的脚本... 我正在尝试获取SEA SUPERACE TEMP DATA,我很接近,但是我似乎缺少了一些东西。 地图的中心是1578px Horz和839px Vert,每度的经度或纬度为4.6666px。 因此0.0lat 0.0lng在地图上将为1578px ...

4 将坐标转换为网格矩阵

在我的应用程序中,我需要将一组坐标转换为1和0的网格。 下面通过示例进行说明: 输入 :图像上的感兴趣区域,以x轴和y轴坐标表示 例如: x坐标 :0; 0.8; 0.8; 0和y坐标 :0; 0; 1; 1 样本图片 输出 :1和0的矩阵。 在输入中选择 ...

5 将网格坐标转换为ggplot坐标

在我shiny应用程序创建一个ggplot图,这是我转变为一个grob通过ggplotGrob 。 (我之所以这样做,是因为我需要摆弄基础gtable )。 现在我想在我的输出中添加一个clickOpts处理程序以允许一些交互性。 然而,返回的坐标现在处于'grid'坐标( npc ? ...

6 将SVG网格转换为坐标网格

我一直在尝试解决此问题,但无法解决! 问题在于转型。 绘制的点是上下颠倒的,需要翻转。 我之前已经解决了类似的问题,但是这次y值都是负数(即-5.8) 我该如何解决? 总而言之,我基本上想执行转换,但是对于如何使用-ve数字进行转换还是很困难的。 我搜索了类似的问题,但是没有一 ...

2013-02-14 23:15:26 1 128   perl/ svg
7 在C#中将图形坐标转换为数学坐标

我想将图形x,y坐标x,y转换为数学坐标 (在这张图片中,您会看到图形x,y与数学x,y之间的差异 图形x和图形y通过e事件获取 并且它们在表单中由两个标签显示,仅应在表单上移动鼠标 现在,将graphicx,y转换为数学x,y的公式是: 图形x =数学x + ...

8 了解数学:将世界坐标转换为视图坐标

我试图了解从世界坐标到视图坐标的转换背后的数学原理。 这是在视图坐标中计算矩阵的公式: 这是一个示例,通常应该是正确的...: 其中b =视口的宽度,h =视口的高度 但是我只是不知道如何计算R矩阵。 如何获得Ux,Uy,Uz,Vx,Vy等...? U,v和n是固 ...

9 将网格平方数转换为坐标

我如何在JavaScript中将网格平方数转换为4x4网格,然后轻松将其转换为网格坐标? (例如:方格#6-> 2、2) ^ =选定的正方形 因此,基本上,我如何(快速?)将网格编号转换为两个坐标。 是否有一些小的算法来执行此操作,而每个网格正方形都没有变量或数组。 我 ...

10 将(x,y)转换为网格坐标

假设我有一个二维空间,从x = 0到x = 1,从y = 0到y = 1。 另外,我有一个矩形(i,j),其矩形大小为1/3,从(0,0)开始,将空间细分为9个网格单元。 如何将某些坐标(x,y),例如(0.3,0.6)转换为网格坐标(i,j)? 我认为这应该是除以网格单元格大小和舍入 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM