如何在单个 for 循环中覆盖网格中的每个正方形?
How to cover every square in a grid in a single for loop?
我正在实施动态地图图块,但遇到了一些令人费解的问题。假设我有一个 8x8 正方形的网格,就像一个棋盘。我需要在这些方块中的每一个上放置一个图像,最好从中心开始并从那里开始。
这是否可以在单个 for 循环中完成,还是需要多次循环?正如我所说,这些图像是正方形的,并且被放置在地图上。 latitude/longitude.
都是0.025°
这是我的初步想法:
for (var i=-0.25; i<=0.25; i+=0.025) {
var adjustedLatitude = (requestedLatitude + i);
var adjustedLongitude = (requestedLongitude + i);
}
当然,这只会以对角线模式填充网格。执行此操作的最佳方法是什么?
我个人认为使用嵌套循环最易读:
for (var i=-0.25; i<=0.25; i+=0.025) {
for (var j=-0.25; j<=0.25; j+=0.025) {
var adjustedLatitude = (requestedLatitude + i);
var adjustedLongitude = (requestedLongitude + j);
doStuffWithAxes(adjustedLatitude, adjustedLongitude);
}
}
但是,您可以使用一个循环来完成它:
for (var i=0; i<=20*20; i++) {
var xoffset = (i % 20 - 10) / 40;
var yoffset = (i / 20 - 10) / 40;
var adjustedLatitude = (requestedLatitude + xoffset);
var adjustedLongitude = (requestedLongitude + yoffset);
doStuffWithAxes(adjustedLatitude, adjustedLongitude);
}
我正在实施动态地图图块,但遇到了一些令人费解的问题。假设我有一个 8x8 正方形的网格,就像一个棋盘。我需要在这些方块中的每一个上放置一个图像,最好从中心开始并从那里开始。
这是否可以在单个 for 循环中完成,还是需要多次循环?正如我所说,这些图像是正方形的,并且被放置在地图上。 latitude/longitude.
都是0.025°这是我的初步想法:
for (var i=-0.25; i<=0.25; i+=0.025) {
var adjustedLatitude = (requestedLatitude + i);
var adjustedLongitude = (requestedLongitude + i);
}
当然,这只会以对角线模式填充网格。执行此操作的最佳方法是什么?
我个人认为使用嵌套循环最易读:
for (var i=-0.25; i<=0.25; i+=0.025) {
for (var j=-0.25; j<=0.25; j+=0.025) {
var adjustedLatitude = (requestedLatitude + i);
var adjustedLongitude = (requestedLongitude + j);
doStuffWithAxes(adjustedLatitude, adjustedLongitude);
}
}
但是,您可以使用一个循环来完成它:
for (var i=0; i<=20*20; i++) {
var xoffset = (i % 20 - 10) / 40;
var yoffset = (i / 20 - 10) / 40;
var adjustedLatitude = (requestedLatitude + xoffset);
var adjustedLongitude = (requestedLongitude + yoffset);
doStuffWithAxes(adjustedLatitude, adjustedLongitude);
}