(Java)将1x1像素转换为3x3像素

(Java)将1x1像素转换为3x3像素,java,Java,我做了一个练习,希望我写一个程序,读取一个包含40000个数字的数据文件,并使用这些数字在200x200大小的图形窗口中显示图像 现在这个问题让我用600x600屏幕替换以前的200x200显示屏,其中每个数字变成3x3像素块 //Setting the size of the graphics window final int WINDOW_DIMENSION = 200; EasyGraphics generate = new EasyGraphics(WINDOW_DIMENSION,WI

我做了一个练习,希望我写一个程序,读取一个包含40000个数字的数据文件,并使用这些数字在200x200大小的图形窗口中显示图像

现在这个问题让我用600x600屏幕替换以前的200x200显示屏,其中每个数字变成3x3像素块

//Setting the size of the graphics window
final int WINDOW_DIMENSION = 200;
EasyGraphics generate = new EasyGraphics(WINDOW_DIMENSION,WINDOW_DIMENSION);

//Constructing the arrays
    char[][] firstArray = new char[WINDOW_DIMENSION][WINDOW_DIMENSION];
    char[] secondArray = scan.toCharArray();

    //Using "for" loop to generate 2D array
    int line = WINDOW_DIMENSION;
    int column = -1;

    for (int i = 0; i < WINDOW_DIMENSION*WINDOW_DIMENSION; i++) {
        column++;
        if (i%WINDOW_DIMENSION == 0) {
            line--;
            column = 0;
        }
        firstArray[column][line]=secondArray[i];
    }

    //Plotting the colours for respective range of numbers
    for (int a = 0; a < WINDOW_DIMENSION; a++) {
        for (int b = 0; b < WINDOW_DIMENSION; b++) {
            if (firstArray[a][b]=='0' || firstArray[a][b]=='1' || firstArray[a][b]=='2' || firstArray[a][b]=='3') {
                generate.setColor(66,167,243);
                generate.plot(a,b);
            } 

            else if (firstArray[a][b]=='4' || firstArray[a][b]=='5') {
                generate.setColor(0,255,77);
                generate.plot(a,b);
            } 

            else if (firstArray[a][b]=='6' || firstArray[a][b]=='7') {
                generate.setColor(51,183,91);
                generate.plot(a,b);
            } 

            else if (firstArray[a][b]=='8' || firstArray[a][b]=='9') {
                generate.setColor(102,51,0);
                generate.plot(a,b);
            }
        }
    }
}
//设置图形窗口的大小
最终int窗口尺寸=200;
EasyGraphics generate=新的EasyGraphics(窗口维度,窗口维度);
//构建阵列
char[][]firstArray=新字符[窗口维度][窗口维度];
char[]secondArray=scan.toCharArray();
//使用“for”循环生成二维阵列
int line=窗口尺寸;
int列=-1;
对于(int i=0;i

关于如何解决这个问题,有什么解决方案吗?

如果没有关于
生成
绘图
是什么的进一步信息,我们只能给出“通用”答案:无论
生成什么。绘图(a,b)
都必须执行3次。因此,替换对
generate.plot(a,b)的所有调用就足够了带有

for (int da=0; da<3; da++) {
    for (int db=0; db<3; db++) {
        generate.plot(a*3+da,b*3+db);
    }
}
之后:

if (firstArray[a][b]=='0' || firstArray[a][b]=='1' || 
    firstArray[a][b]=='2' || firstArray[a][b]=='3') {
    generate.setColor(66,167,243);
    for (int da=0; da<3; da++) {
        for (int db=0; db<3; db++) {
            generate.plot(a*3+da,b*3+db);
        }
    }
} 
if(firstArray[a][b]='0'| | firstArray[a][b]='1'| |
firstArray[a][b]=='2'| | firstArray[a][b]=='3'){
generate.setColor(66167243);
for(int da=0;da
//设置图形窗口的大小
最终int窗口尺寸=200;
EasyGraphics generate=新的EasyGraphics(窗口尺寸*3,窗口尺寸*3);
//构建阵列
char[][]firstArray=新字符[窗口维度][窗口维度];
char[]secondArray=scan.toCharArray();
//使用“for”循环生成二维阵列
int line=窗口尺寸;
int列=-1;
对于(int i=0;i对于(int da=0;daw)我应该在我的代码中加入这个吗?很抱歉问这个问题。我只是不太熟悉数组和循环@marco13你的代码可以工作,但你的代码实际上是将图像放大3倍,而不是将整个图形窗口放大3倍。@marco13这个问题缺乏重要信息(例如,“EasyGraphics”类是什么及其作用)。但是,您必须调整窗口大小。根据qestion中编辑的代码,这可能是“…新EasyGraphics(窗口尺寸*3,窗口尺寸*3)”EasyGraphics是我所在机构提供的一个软件包。它包含生成图形输出所需的所有Java图形类。您的代码工作正常。为此,我非常感谢。@Marco13
if (firstArray[a][b]=='0' || firstArray[a][b]=='1' || 
    firstArray[a][b]=='2' || firstArray[a][b]=='3') {
    generate.setColor(66,167,243);
    for (int da=0; da<3; da++) {
        for (int db=0; db<3; db++) {
            generate.plot(a*3+da,b*3+db);
        }
    }
} 
    //Setting the size of the graphics window
    final int WINDOW_DIMENSION = 200;
    EasyGraphics generate = new EasyGraphics(WINDOW_DIMENSION*3,WINDOW_DIMENSION*3);

    //Constructing the arrays
    char[][] firstArray = new char[WINDOW_DIMENSION][WINDOW_DIMENSION];
    char[] secondArray = scan.toCharArray();

    //Using "for" loop to generate 2D array
    int line = WINDOW_DIMENSION;
    int column = -1;

    for (int i = 0; i < WINDOW_DIMENSION*WINDOW_DIMENSION; i++) {
        column++;
        if (i%WINDOW_DIMENSION == 0) {
            line--;
            column = 0;
        }

        firstArray[column][line]=secondArray[i];
    }

    //Plotting the colours for respective range of numbers
    for (int a = 0; a < WINDOW_DIMENSION; a++) {
        for (int b = 0; b < WINDOW_DIMENSION; b++) {
            if (firstArray[a][b]=='0' || firstArray[a][b]=='1' || firstArray[a][b]=='2' || firstArray[a][b]=='3') {
                generate.setColor(66,167,243);
                for (int da=0; da<3; da++) {
                    for (int db=0; db<3; db++) {
                      generate.plot(a*3+da,b*3+db);
                    }
                }
            } 

            else if (firstArray[a][b]=='4' || firstArray[a][b]=='5') {
                generate.setColor(0,255,77);
                for (int da=0; da<3; da++) {
                    for (int db=0; db<3; db++) {
                      generate.plot(a*3+da,b*3+db);
                    }
                }
            } 

            else if (firstArray[a][b]=='6' || firstArray[a][b]=='7') {
                generate.setColor(51,183,91);
                for (int da=0; da<3; da++) {
                    for (int db=0; db<3; db++) {
                      generate.plot(a*3+da,b*3+db);
                    }
                }
            } 

            else if (firstArray[a][b]=='8' || firstArray[a][b]=='9') {
                generate.setColor(102,51,0);
                for (int da=0; da<3; da++) {
                    for (int db=0; db<3; db++) {
                      generate.plot(a*3+da,b*3+db);
                    }
                }
            } 
        }
    }
}