gpt4 book ai didi

java - 堆叠方 block /盒子

转载 作者:行者123 更新时间:2023-12-01 12:36:31 24 4
gpt4 key购买 nike

我需要帮助解决一个简单的问题。我的任务即将结束,我们要制作不同的艺术人物。我制作了一个“正方形内的正方形”盒子,需要生成该盒子的 4 行和 4 列。

enter image description here

我认为最好的解决方案是多一些 for 循环,但不能完全使其工作。

我的代码:

class StandardPanel extends JPanel{     

public void paintComponent(Graphics g){

Graphics2D g2d = (Graphics2D) g;

double alpha = Math.toRadians(5);
double factor = 1 / (Math.sin(alpha) + Math.cos(alpha));
double size = 200;

g2d.translate(size, size);

for (int i = 0; i < 28; i++) {

int intSize = (int) Math.round(size);

g2d.setColor(i % 2 == 0 ? Color.white : Color.white);
g2d.fillRect(-intSize / 2, -intSize / 2, intSize, intSize);
g2d.setColor(i % 2 == 0 ? Color.black : Color.black);
g2d.drawRect(-intSize / 2, -intSize / 2, intSize, intSize);

size = size * factor;
g2d.rotate(alpha);
}
}
}

最佳答案

您需要将绘图代码放入双重嵌套 for 循环中,以在网格中创建多个对象。另外,您需要重新平移 g2d 对象,以便它实际上改变相对于网格中位置的位置:

for ( int row = 0; row < 4; row++ ) // 4 rows
{
for ( int col = 0; col < 4; col++ ) // 4 columns
{
g2d.translate(row*size, col*size); // change the location of the object

for (int i = 0; i < 28; i++) // draw it
{
int intSize = (int) Math.round(size);

g2d.setColor(i % 2 == 0 ? Color.white : Color.white);
g2d.fillRect(-intSize / 2, -intSize / 2, intSize, intSize);
g2d.setColor(i % 2 == 0 ? Color.black : Color.black);
g2d.drawRect(-intSize / 2, -intSize / 2, intSize, intSize);

size = size * factor;
g2d.rotate(alpha);
}
}
}

关于java - 堆叠方 block /盒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25532887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com