LCD-Ziffern aus einem SVG-path-Element konstruiert
Das Ursprungsobjekt im defs-Container definiert und hier links einmal im use-Container ausgegeben.
Darunter wird nach Wahl einer Ziffernanzeigeeinheit das Zählen begonnen.
Das Pfad-Element wird siebenmal geschert, verschoben und zur Senkrechten dann gedreht und schließlich zu einer Gruppe gefasst. Je nach Wahl der Ziffernmenge werden entsprechend PfadElemente kreiert:„ document.createElementNS( _svgNS, "use")“ .
Das Zählwerk:
Der Schieberegler dient der Größenveränderung der SVG-Zeichenfläche. Im Minimum ist die noch akzeptable Sichtbarkeit überschritten. Das Maximum wird durch die Containerbreite des section-Elementes begrenzt.
Die Radio-Button dienen der Begrenzung des Zählwerkes und lösen am Beispiel das Zählen aus. In einer Anwendung wird ein Begrenzer natürlich wenig Sinn machen. Bei Überschreiten einer Zahleneinheit muss automatisch eine neue Ziffernabbildung aus den sieben Pfadelementen vorangestellt werden.
Zum Verständnis der Elementenanordnung, Erklärung zur Matrix und Zahlendarstellung:
Anzeige für diese Zahl:
0 1 2 3 45 6 7 8 9
Die Matrix besteht aus einer zweidimensionalen Tabelle, die in jeder Zeile mit null und eins bestimmt, welches PfadElement andersfarbig hervorgehoben werden soll.
rgb(0,127,255) für 1 und rgb(235,245,255) für 0
Die Zählfolge 0 bis 6 ist abgebildet.
var ar_lcd = [
Wen es interessiert, kann den Code für das Zählwerk
Die Definition des Pfadelementes und ein Gruppenelement bilden das Grundgerüst der Zeichenfläche.
Was hier folgt ist eine inkludierte Datei, die natürlich auch zur Darstellung benutzt ist. Der einzige Grund hierfür: damit ich den Überblick nicht verliehre.
07 08 09 10 11 12 13 14 15 16 17 18 19 |
<svg id='svgzahlen' width="400" height="100" viewBox="0 0 860 200">
|
Es folgt der ScriptBereich:
35 36 37 38 39 40 41 42 43 |
var _svgNS = 'http://www.w3.org/2000/svg';
|
Was nicht direkt dem Zählen dient, also Größenänderung der Zeichenfläche, bleibt außen vor.
Die Funktion ZIFFERMENGE wird durch die RadioButtons aufgerufen wie am Beispiel:
<input type="radio" name="Ziffern" onclick="ZIFFERMENGE(this);" value="2"> 2
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
// Die Transformung in Tabellen gespeichert
|
Hier nochmal die Definition der Matrix zur Darstellung einer Zahl:
91 92 93 94 95 96 97 98 99 100 101 102 |
var ar_lcd = [
|
Die Funktionen ZAHLEN() und AKTUALISIERE(...) bestimmen die Farbigkeit der Pfadelemente.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
function AKTUALISIERE(id, zahlwert, b){
|