Umgang mit verschiedenen Bildschirmauflösungen
(EN google-translate)
(PL google-translate)
Lösung
|
Durch unterschiedliche Verhältnisse von Bildschirmhöhe zu - breite entstehende Verzerrungen bei einigen Devices werden bewußt in Kauf genommen, um komplizierte Fallunterscheidungen vermeiden zu können.
private String[][] b = { {"A","2125","0323","0305","B301"}, {"B","0105","0111","0313","0515","b211","b112","b213","b114"}, {"C","B301","B403"}, ... };
Code 0-1: Definition, wie die Buchstaben gezeichnet werden sollen in der Klasse info.kramann.text.Hzeichen
public void Bogen4(int x1,int y1, float xoff, float yoff) { float mx = xoff+0.5f*xraster+2.0f*xraster+xraster*(float)x1; float my = yoff+yraster*(float)y1; pap.arc(mx,my,xraster*4.0f,yraster*4.0f,pap.HALF_PI,pap.PI); }
Code 0-2: Umsetzung der als String kodierten Zeichenbefehle am Beispiel eines Kreisbogens. - xraster, yraster sind Breite und Höhe eines Gitterrasters, welches abhängt von width, heigth, sowie der Anzahl der Zeilen und Spalten des Textbereiches.
public void tonband(float xx, float yy) { float x = xx*xraster; float y = yy*yraster; float bx = 2.0f*xraster; float by = 2.0f*YFAKTOR*yraster; //pap.strokeWeight(STIFTDICKE); pap.noStroke(); pap.fill(178, 178, 178); pap.ellipse(x,y,bx,by); pap.fill(51,51,51); pap.ellipse(x,y,bx*0.25f,by*0.25f); pap.rect(x-bx*0.06f*0.5f,y+by*0.2f,bx*0.06f,by*0.2f,8,8,8,8); pap.rect(x-bx*0.06f*0.5f,y-by*0.4f,bx*0.06f,by*0.2f,8,8,8,8); pap.rect(x+bx*0.2f,y-by*0.06f*0.5f,bx*0.2f,by*0.06f,8,8,8,8); pap.rect(x-0.4f*bx,y-by*0.06f*0.5f,bx*0.2f,by*0.06f,8,8,8,8); }
Code 0-3: Zeichnen einer der Tonbandrollen relativ zu width und height (xraster und yraster).