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).