<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    騎豬闖天下

    J2ME隨筆,記錄成長(zhǎng)的腳步

    統(tǒng)計(jì)

    留言簿(3)

    閱讀排行榜

    評(píng)論排行榜

    [J2ME-原創(chuàng)] 用矩陣上的變量,表示圖片的位置,畫(huà)圖

    本處提供兩個(gè)實(shí)例,用矩陣變量畫(huà)圖。


    實(shí)例一:
    用矩陣上的變量,表示小圖片的位置編號(hào),
    然后把圖片畫(huà)上去,步驟如下:

    1,把提供的原圖片編號(hào),用一維圖片數(shù)組編號(hào),如
         一個(gè)4*7的小圖片組合,用pic_Yuantu [i]來(lái)給這28個(gè)小圖片編號(hào),編號(hào)方法:
             //這是一種不用setClip方法的編號(hào)
        Image pic_Yuantu[] = new Image[28];
            
    try 
    {
                Image img 
    = Image.createImage("/res/t_pic.png");            //加載連連圖片看

                    
                    
    for (int i = 1; i <= 28; i++
    {                        //圖片數(shù)量

                    pic_Yuantu[i 
    - 1= Image.createImage(HSize, VSize);        //圖片大小
                    Graphics newg = pic_Yuantu[i - 1].getGraphics();

                    newg.drawImage(img, ((
    1-i)%7 )* HSize, ((1-i)/7 )* VSize, 0);    //畫(huà)圖片            

                }

            }
     catch (Exception ee) {
                ee.printStackTrace();
            }

    2,畫(huà)一個(gè)矩陣,并且給矩陣的每一個(gè)位置編號(hào), 二維的數(shù)組有個(gè)好處,就是自己有個(gè)序列號(hào) matrix [][] 對(duì)應(yīng)位置, 可以用這個(gè)序列號(hào)來(lái)記錄每個(gè)位置的值,如:
         畫(huà)一個(gè)3*5的二維數(shù)組矩陣, 并給每個(gè)數(shù)組位置編號(hào):

        A>. 畫(huà)一個(gè)數(shù)組:  private int matrix [3][5];
        B
    >
    . 給數(shù)組編號(hào):  b, b是個(gè)一維數(shù)組,
      
            
    int j = 0
    ;
            
    int b = 0
    ;
            
    for (int x=0; x<3; x++)
    {
                
    for (int y=0; y<5; y++
    )
                
    {
                    j 
    = 1-
    j;
                    
    if (j == 1
    )
                    
    {
                        b 
    = ((x * HCount + y) / 2);          //
    按照雙號(hào)編號(hào),即0,0,1,1
                
    //b = ((x * HCount + y) / 2) % 28;      //剛才有28個(gè)小圖片

                    }

                    matrix[x][y] 
    = b;              //按照單元格圖片索引生成的有規(guī)律的矩陣  
                }

            }


        C
    >. 即二維數(shù)組矩陣的編號(hào)matrix[x][y]位置上對(duì)應(yīng)一個(gè)具體的值,這個(gè)值用個(gè)一維數(shù)組b存儲(chǔ).


    3,把小圖片畫(huà)到二維數(shù)組矩陣對(duì)應(yīng)的位置上,這是連接二者的關(guān)鍵,即:把原圖片數(shù)組pic_Yuantu [i]上的編號(hào)與二維數(shù)組矩陣位置上的值 b 對(duì)應(yīng)起來(lái),就可以用drawImageb把pic_Yuantu[i]畫(huà)到位置 matrix[x][y]=b 上,方法如下:

            for (int x = 0; x < 3; x++)                    //遍歷橫向
            {
                
    for (int y = 0; y < 5; y++){            //遍歷縱向
                    int b = matrix.getAt(x + 1, y + 1);    //獲取矩陣內(nèi)容,調(diào)用一個(gè)方法,返回的結(jié)果是: 
                                                        
    //      return matrix[x ][y ];
                                                        
    //也就是: b = matrix[x][y];
                        
                    
    if (b >= 0 && b < seedCount)        //繪制圖片,并繪制外邊框
                    {        
                        g.setColor(outerColor);            
    //設(shè)置外邊框顏色
                        g.drawImage( pic_Yuantu [b],  ( x*HSize + xMargin + 1), 
                                ( y
    *VSize + yMargin + 1), 0);                //繪制圖片
                        g.drawRect(x * HSize + xMargin, 
                                y 
    * VSize + yMargin, HSize, VSize);            //繪制邊框
                    }
                                   
                }

            }

    當(dāng)然具體操作起來(lái),還要變換矩陣,打亂排列位置,具體參照排列矩陣.。



    實(shí)例二:

    1.  畫(huà)布上3*3的數(shù)組, 數(shù)組序列號(hào)與數(shù)組行列位置的關(guān)系是
             image [i][j] = i*3+j;

    2.  4*7的圖片, 如果是一維索引號(hào)的話,即: "image i; " 從0到27編號(hào),而不是上面image[i][j] 編號(hào), 那么索引號(hào)i 與行列的關(guān)系是:
             行號(hào) H = (i-1)%7, 是取余, 那么具體到圖片i的x坐標(biāo)是: [((i-1)%7 ) * 每個(gè)圖片的寬];
             列號(hào) L = (i-1)/7, 是取除, 那么具體到圖片i的y坐標(biāo)是: [((i-1)/7 ) * 每個(gè)圖片的高];

    3.  生成有序矩陣: b = ((x * HCount + y) / 2) % SeedCount;

            for (int x = 0; x < HCount; x++){
                
    for (int y = 0; y < Vcount; y++)
                
    {
                    j 
    = 1-j;            //防止生成單個(gè)圖片的。
                    if (j == 1)
                    
    {
                        b 
    = ((x * HCount + y) / 2% SeedCount;
                    }

                    matrix[x][y] 
    = b;    //按照單元格圖片索引生成的有規(guī)律的矩陣  
                }

            }


    HCount:列數(shù),即新建放圖片的數(shù)組總列數(shù)
    SeedCount:原圖片總共含有的圖片數(shù)。

    循環(huán)之后,即:給新建HCount列,Vcount行的數(shù)組編上號(hào),
    A,由于圖片必須成對(duì)出現(xiàn),所以要除以2;
    B,由于怕源小圖片乘以2<新建數(shù)組的總方格,所以對(duì)SeedCount取余;以便把多出的方格用重復(fù)的圖片顯示
    C,排列后的位置為:
    ------------
    0 1 3 4
    0 2 3 5
    1 2 4 5
    ------------

    D,編號(hào)即為:matrix[x][y] = b;

     

    <騎豬闖天下>

    posted on 2008-08-29 22:03 騎豬闖天下 閱讀(1312) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲女人影院想要爱| 免费永久看黄在线观看app| 日韩精品极品视频在线观看免费| a成人毛片免费观看| 男女猛烈xx00免费视频试看| 一级白嫩美女毛片免费| 黄页免费在线观看| 欧美男同gv免费网站观看| 国产免费人成视频在线观看| 亚洲熟女乱色一区二区三区| a级毛片免费网站| 在线永久看片免费的视频| 亚洲 国产 图片| 91亚洲一区二区在线观看不卡| 自拍日韩亚洲一区在线| 一级毛片免费在线| 亚洲午夜福利在线观看| 亚洲最大的成人网| 国产成人免费a在线视频app | 亚洲gay片在线gv网站| 国产午夜免费高清久久影院| 亚洲VA中文字幕无码毛片| 亚洲aⅴ天堂av天堂无码麻豆 | 亚洲精品宾馆在线精品酒店| 国产精品酒店视频免费看| 国产成人无码免费看片软件| 久久久久久久尹人综合网亚洲| 国产精品国产亚洲区艳妇糸列短篇 | 亚洲综合伊人制服丝袜美腿| 麻豆成人精品国产免费| 亚洲天堂一区二区| 精品国产污污免费网站入口在线| 国产福利免费在线观看| a在线视频免费观看| 2020天堂在线亚洲精品专区| 免费va人成视频网站全| 最新亚洲人成无码网www电影| 久久亚洲AV无码西西人体| 最新亚洲人成网站在线观看 | 亚洲va无码专区国产乱码| 黄色片在线免费观看|