Welkom!

Deel je kennis met anderen in deze Flashgemeenschap!
Gebruikersnaam:
Wachtwoord:
Wachtwoord opslaan?
Wachtwoord vergeten?
2 dimensionale arrays roteren. Tegen de klok in, of met de klok mee
8970 keer gelezen
(March 2, 2005)
Waardering: 4 keer gestemd 
 4.2 van de 5
Met deze functie kan je een tweedimensionale array om zn as roteren. Handig voor bv tilebased games.. Of voor het geval dat je gewoon een 2d array wilt roteren

usage:
//(met de klok mee)  
my_2d_array = rotateArray(a_2d_array, "cw");
 
//of (tegen de klok in)
my_2d_array = rotateArray(a_2d_array, "ccw");    
Als je het origineel niet hoeft te houden, dan zeg je natuurlijk:  
my_2d_array = rotateArray(my_2d_array, "cw");        
een voorbeeld:
 
  
function rotateArray(_my_arr:Array, _rotationStyle:String):Array{
    //nieuwe array maken die de geroteerde array gaat bevatten
    var new_array:Array = new Array();
    //ik gebruik de eerste rij om te bepalen
    //hoe "breed de array is", zo "hoog" wordt
    //de nieuwe. Als dit variabel is, dan moet je dus
    //het "breedste stuk" vinden, en die waarde gebruiken!
    //(de breedte is dus nu: _my_arr[0].length
    var nieuwe_hoogte:Number = _my_arr[0].length;
    var nieuwe_breedte:Number = _my_arr.length;
    for(var j=0; j<nieuwe_hoogte;j++){
        new_array[j] = new Array();
        for(var k=0; k<nieuwe_breedte;k++){
            if(_rotationStyle == "cw"){
                //hier even opletten, als met de klok mee,
                //dan rijen als kolommen én
                //moeten de kolommen ondersteboven
                new_array[j][k]= _my_arr[nieuwe_breedte - 1 - k][j];
            } else if (_rotationStyle == "ccw"){
                //anders moeten rijen als kolommen én
                //moeten de rijen achterstevoren
                new_array[j][k]= _my_arr[k][nieuwe_hoogte - 1 - j];
            }
        }
    }   
    return new_array;
}
 
Geef hier je waardering: Matig 1 2 3 4 5 Geweldig!
  Waardering:
Download ( meld je eerst aan om te kunnen downloaden! )
3d? Toon Van Lishout (17 March 2006, 18:39)
werkt het ook met driedimensionale arrays?
1-1