Nyttiga övningar inför lab 5

  1. Se klassen java.awt.Color för att se vilka fördefinierade färger som finns eller hur du definierar egna färger, t.ex. med RGB-kod: Color myBlue = new Color(33,66,99);. Använd gärna följande kodsnutt inne i en main-metod för att visa färgen på bildskärmen:
    Screen myscreen = new Screen("Färgtest");
    java.awt.Color color = new java.awt.Color(33,66,99);
    myscreen.setDot(5,5,color);
    

    Modifiera koden så att fler punkter skrivs ut. Testa olika färger.

  2. För att göra en paus anropar man metoden sleep i klassen Thread. Eftersom den metoden kan kasta Exception så måste dessa också fångas, t.ex. så här:
    try{
      Thread.sleep(200);
    }
    catch(Exception e){
      System.out.println("Undantag har inträffat!");
    }
    
    Effekten av dessa rader är ett stopp i 200 ms. Skriv ett litet program som skriver ut Hola! till bildskärmen, sover en stund, skriver lite till, osv.

  3. Läs, begrunda och testa sedan genom att göra ett testprogram. För att filtrera av den första biten i ett heltal x så skriver man så här:
    (x & 1)
    
    vilket betyder logiskt AND mellan x och 1. Om x till exempel är 3 kan det översättas till det binära talet 0011 och 1 till 0001 (förstås). En logisk AND-operation kräver att båda operanderna är 1 för att resultatet ska bli ett, ungefär som ett filter...
        0011
    AND 0001
    --------
        0001
    

  4. Testa att skriva ut bokstäver till bildskärmen med typsnitten från klassen Data. Detta kan vara lite klurigt så diskutera gärna med varann! Under denna övning är det lättast att skriva ut bokstäverna liggande. Gör det nu men inte i själva redovisningsuppgiften!
    XXXXX   
       X X
       X  X
       X X
    XXXXX
    

    Om du använder klassen Data för att skapa typsnittet:
    Typsnittsinformationen är lagrad som heltal och ska tolkas binärt. Dvs att bokstaven A ser ut så här:

             
      X   
     X X
    X   X
    XXXXX
    X   X
    X   X
    X   X
    

    Denna bokstav kan sedan delas in i kolumner:

             
            X   
        X        X
    X                 X
    X   X   X    X    X
    X                 X
    X                 X
    X                 X
    
    Om man sedan tippar omkull den första kolumnen får man:
    XXXXX___
    
    Om detta översätts till 0 för blanksteg och 1 för X så blir det
    11111000
    
    Detta binära tal kan sedan översättas till 249 (med basen 10) eller F8 (med basen 16, dvs hexadecimalt). Ett anrop av metoden get(...) i klassen Data ger just en sådan kolumn, som du sedan ska översätta till pixlar på skärmen. Så här kan en kolumn pixlar hämtas till bokstaven A genom anropet
    int col = Data.getData('A',0);//Hämta den första kolumnen