首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将矩形分割成正方形

将矩形分割成正方形
EN

Stack Overflow用户
提问于 2017-03-17 03:24:24
回答 2查看 1.2K关注 0票数 2

我有一个长方形,它的坐标是A,B,C,D,它们分别具有以下坐标:

代码语言:javascript
复制
A->(3,9)
B->(6,9)
C->(6,6)
D->(3,6)

其中A是左上角坐标,D是左下角坐标。

我希望将矩形划分为25个网格,并为每个网格分配一个number.For示例

所以我试着

代码语言:javascript
复制
double width =  6-3=3;
double height = 9-6=3;

grid width=3/5=0.6
grid height=3/5=0.6

现在,我想给网格分配一个id,它们的协调如下

代码语言:javascript
复制
1  ->  (3,9),(3.6,9),(3.6,8.4),(3,8.4)

诸若此类。

因此,我正在实现一个哈希映射来存储信息。

代码语言:javascript
复制
HashMap<Integer, Double[]> hmap = new HashMap<Integer, Double[]>();

但我搞不懂怎么才能得到网格id和

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-17 07:35:56

您可以通过简单的双循环生成ids和(36)坐标:

代码语言:javascript
复制
public static void main(String[] args) {

    Map<Integer, double[]> hmap = new HashMap<>();

    int id = 0;
    for (double height = 9.0 ; height >= 6.0; height -=0.6) {

        for (double width = 3.0 ; width <= 6.0; width+=0.6) {

            hmap.put(id++, new double[] {width, height}) ;
        }
    }

    //output 
    for(Integer iD : hmap.keySet()) {

        System.out.printf("%2d  %3.2f %s %3.2f \n",iD,hmap.get(iD)[0],"-",hmap.get(iD)[1]);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2017-03-17 04:28:59

表示网格数据结构的最简单方法是使用网格所包含的数据类型的二维数组,您可以声明如下

代码语言:javascript
复制
Double[][] grid = new Double[5][5]

这基本上是一个数组,5个数组,5个数组,或者更多,简单地说,放5行和5列。当你用这种方式构造数据时,就很容易在网格中找到特定的方块,并更新/查看它们,或者对整个网格中的每个方块、每一行、每一列等进行迭代。迭代2d数组的方法是使用两个嵌套循环。外部重新分配您拥有的行数和内部表示每一行的记录或数据数的内部,例如对于上面的网格。

代码语言:javascript
复制
for(int i = 0; i < 5; i++){
    for(int j = 0; j < 5; j++){
        System.out.println(grid[i][j].toString());
    }
}

上面的代码击中每个正方形,并在网格中打印该正方形数据的内容。例如,如果你想从2d切换到3d,你会有3个嵌套的,一个做一行,另一个做正方形,得到一个平面,另一个做z,得到深度,然后你会有一个三维数据结构,可以很容易地访问和迭代。我刚刚完成了一个下棋游戏使用2d数组的JButtons,所以让我知道,如果你有任何进一步的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42848665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档