💬
Logga in
Fuska.se

[c++] Algoritm För Att Skriva Text På En 2d Bild

2 svar · startad

Nivå 9 · Veteranfuskare
Trådstartare #1

Tja, jag håller på och programmerar lite för G15 Keyboard LCDn. Nu är det så att jag inte kan få igång en del(där t.ex funktioner för att skriva text på LCDn finns) av SDKet som följer med produkten, så därför har jag bestämt att skapa egna funktioner.

 

När man skriver på LCDns bitmap som ser ut såhär:

char pixels[160*43];

så är värden >=128 "på" och <128 är "av".

 

För att bespara mig energi varje gång jag håller på med pixlarna har jag skapat en funktion som förenklar detta:

void setPixel(lgLcdBitmap160x43x1* bmp, int x, int y, bool set = true)
{
    bmp->pixels[y * 160 + x] = set?0xFF:0x00;
}

 

Origo är altså uppe i vänstra hörnet och x ökar åt höger och y ökar ner.

 

Det jag behöver är nu hjälp med att hitta på algoritmer för att skriva text på dessa pixlar.

 

http://www.logitech.com/lang/images/0/7687.jpg

Senast ändrad:

20 Feb 2009
Nivå 2 · Novis
#2

Ett tips av mig är att du har en 2d-array.

char pixel[160][43];

 

Sen får du fixa en struct för en bokstav. De kanske är 12 px höga och 3 till 7 px breda.

struct bitChar {
   char pixel[7][12];
   char width;
}

 

Därefter bör du göra ett av varje tecken till en sådan struct (alternativt göra en funktion som läser in en fil + bitmapsbilder).

 

Tilll sist är det en funktion för att skriva ut tecken på vissa positioner. Kanske så här.

void (char** GPixel, const char x, const char y, const bitChar** letter) {
   for (int i = 0; i<bitChar->width; ++i) {
      for (int j=0; j<12; ++j) {
         GPixel[x+i][y+j] = letter[i][j];
      }
   }
}

 

Det var vad jag orkade lägga ner tid på att tänka ut. Men jag tyckte att detta verkade vara de funktioner som behövdes. Sedan kan man bygga ut med funktioner för att skriva textsträngar och få radbyten osv, men det får du klura ut själv.

Senast ändrad:

21 Feb 2009
Nivå 9 · Veteranfuskare
Trådstartare #3

Jo, jag antar väl att man får göra som du sa, skapa alla tecken för hand i en char vektor och sedan blitta dem på bitmappen. Typ det lättaste sättet om man inte ska använda några bibliotek i tredje part.

 

Nu är text funktionen färdig! Fungerar utmärkt! Bara att den inte stödjer tecken som åäö och bara har en storlek.

Senast ändrad:

Vill du vara med i diskussionen?

Bli medlem Logga in