java根据宽度、高度和总框创建二维网格
我试图在屏幕上画2048个框,有宽度和高度。(我用Java制作)
我有以下变量:
- 宽度=1024
- 高度=768
- 人口=2048
基于这些变量,如何绘制包含x列数和y行数的网格,从而使整个布局完全符合所需的宽度和高度
例如: 我的宽度和高度为4x4,总人口为4,因此我有2列和2行
我想在上面的屏幕截图中复制完全相同的内容,但我不知道需要循环多少行和列以及每个正方形的大小
我只知道窗口的总宽度/高度,以及我想要绘制的框的总数
你可以在下面搜索框中键入要查询的问题!
我试图在屏幕上画2048个框,有宽度和高度。(我用Java制作)
我有以下变量:
基于这些变量,如何绘制包含x列数和y行数的网格,从而使整个布局完全符合所需的宽度和高度
例如: 我的宽度和高度为4x4,总人口为4,因此我有2列和2行
我想在上面的屏幕截图中复制完全相同的内容,但我不知道需要循环多少行和列以及每个正方形的大小
我只知道窗口的总宽度/高度,以及我想要绘制的框的总数
# 1 楼答案
如果长方体需要为矩形,则有多种可能的解决方案。例如,对于区域12,盒子可以是12x1、1x12、4x3、3x4、6x2、2x6等。。更不用说浮动值了
如果方形框正常:
用获得的长度作为小盒子的宽度和高度填充网格
另一种方法是根据需要填充网格,并将网格缩放到所需的尺寸强>
# 2 楼答案
为自己回答这样的问题,你能做的最好的事情就是拿出一张纸和一支铅笔,画出一堆例子。标记窗口的宽度和高度,以及每个框的位置、宽度和高度。继续绘制示例,直到注意到图案
堆栈溢出并不是为一般的“我该怎么做”类型的问题而设计的。这是针对特定的“我尝试了X,期望是Y,但得到了Z”类型的问题。你需要break your problem down into smaller pieces一次一块地把这些碎片拿出来。尽管如此,我可以试着在一般意义上提供帮助
首先,您需要计算网格应该有多少行和列。从填充到行和列计数并不是只有一种正确的方法。事实上,这甚至可能是不可能的-你会如何划分一个3人的人口?还有多种解决方案:如果您的人口数为20,那么您可以使用1x20、2x10、4x5、5x4、10x2或20x1的网格。我建议你把这当作一个单独的问题来对待,然后就这个问题单独提问
但是一旦你有了行和列的计数,你就可以使用一些基本的数学来计算出每个框的位置和大小。同样,列举一些例子会有所帮助,但基本情况如下:
注意,我从this tutorial获得了这段代码,但是如果你在谷歌上搜索一下,你会在互联网上找到很多例子。如果你仍然不能让它工作,请张贴一个MCVE显示你到底做了什么,我们将从那里开始。祝你好运