2016-04-26 28 views
2

有人可以帮助我我有点新的编程,但正在处理中,并且需要创建一个将两个数组合并成一个并将它们完全显示在相同位置的pogram?所以它循环通过一个数组,这就像23个图像,然后是另一个数组是8个图像。 我有这个至今:转换图像数组为2d数组,处理

PImage[][] mEyes1 = new PImage[23][8]; 
// PImage[] mEyes2 = new PImage[8]; 

void setup() { 
    size(620, 400); 
    // fullScreen(); 
    frameRate(60); 
    smooth(); 

    for (int i = 0; i < mEyes1.length; i++) 
    for (int j = 0; j < mEyes1.length; j++) { 
     PImage img = loadImage(i + "h.jpg"); 
     PImage img1 = loadImage(j + "j.jpg"); 

     // r 
     mEyes1[i][j] = img.get(130, 170, 310, 100); 
     mEyes1[i][j] = img1.get(130, 170, 310, 100); //Get a portion of the loaded image with displaying it 

     int idy = (int)map(mouseY, 0, 2*width, 0.0, mEyes1[i].length -1); 
     int idx = (int)map(mouseX, 0, 2*width, 0.0, mEyes1[j].length -1); 

     image(mEyes1[idx][idy], 0, 0, mEyes1[idx][idy].width, mEyes1[idx][idy].height -1); 
     // image(mEyes1[idy][idx], 0, 0, mEyes1[idy][idx].width, mEyes1[idy][idx].height -1); 

     println(idx,idy); 
    } 
} 

void draw() { 
} 

我知道这看起来错了,但我想在同一位置显示的一系列图像是经过第一23后?

谢谢!

+0

请问您可以编辑您的问题以澄清您的意思吗?你谈论两个目标 - 一个程序“将两个数组合并成一个并将它们完全显示在同一位置上”,以及“在一个数组中循环,这就像23个图像,然后是另一个数组,这是8个图像”。如果您可以添加样机,屏幕截图或已经实现您想要的示例的链接,这将非常有帮助。 – mbaytas

+0

你的问题没有多少意义。你可以通过组合两个数组并将它们显示在同一位置来准确描述你的意思吗?把一些简单的样机图像放在一起。通过在同一位置显示一系列图像,您究竟意味着什么?你可以说得更详细点吗?这段代码做了什么?它的执行与你期望的执行有什么不同? –

回答

0

看这个行:

PImage[][] mEyes1 = new PImage[23][8]; 

这是创建一个二维数组,这是一个数组的数组。换句话说,你创建了23个长度为8的数组,总共有184(23 * 8)个索引。我不认为这是你想要做的。

相反,它听起来像你只是想创建的31(23 + 8)索引数组:

PImage[] mEyes1 = new PImage[31]; 

然后,你可以通过你的图像文件使用两个for回路中循环,并把它们添加到array:

for(int i = 0; i < hImageCount; i++){ 
    PImage img = loadImage(i + "h.jpg"); 
    mEyes1[i] = img; 
} 

for(int j = 0; j < jImageCount; j++){ 
    PImage img1 = loadImage(j + "j.jpg"); 
    mEyes1[hImageCount+j] = img1; 
}