2016-04-26 26 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; 
}