Quellcode-Programm-2: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K (linkfehler berichtigt) |
|||
Zeile 1: | Zeile 1: | ||
+ | [[Kategorie:History]] | ||
Ziel dieses Programmes ist es,aus der vorher erstellten Textdatei nun SVG/XML-Quellcode zu generieren,der im Browser angezeigt werden kann. Man hat auch die Option davon ein Bildschirmfoto generieren zu lassen,fuer Browser ohne PlugIn. | Ziel dieses Programmes ist es,aus der vorher erstellten Textdatei nun SVG/XML-Quellcode zu generieren,der im Browser angezeigt werden kann. Man hat auch die Option davon ein Bildschirmfoto generieren zu lassen,fuer Browser ohne PlugIn. | ||
Das sieht dann z.b. so aus. | Das sieht dann z.b. so aus. |
Aktuelle Version vom 20. Juni 2006, 14:52 Uhr
Ziel dieses Programmes ist es,aus der vorher erstellten Textdatei nun SVG/XML-Quellcode zu generieren,der im Browser angezeigt werden kann. Man hat auch die Option davon ein Bildschirmfoto generieren zu lassen,fuer Browser ohne PlugIn. Das sieht dann z.b. so aus.
- out2.svg - SVG-Karte einzeln
- map.jpg - Stadtkarte einzeln (300kb)
- out.svg - SVG und Stadtkarte kombiniert (momentan noch falsches Mapping,muss mal die genauen Eckpunkte der Karte als GPS raussuchen 8)))
/* $VER makenodemap.rexx v0.1alpha */ zeit = subword(date(),1,1)||'-'||subword(date(),2,1)||','||substr(time(),1,5)||'uhr' /* 19-Jun,09:17uhr */ xmax = 661; ymax = 936; f1 = 'ram:2paint.txt'; textstyle = 'verdana'; textsize = 10 anonym=0; mobil=0; nodecount=0; ohnegps=0; cpuschnitt = 0; scalef = 3 kartexmin = 11.302; kartexmax = 11.3359 /*xmax hoeher rutscht karte nach links*/ karteymin = 50.9705; karteymax = 50.9919 /*ymax hoeher,rutscht karte tiefer*/ say '<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>' say '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"' say ' "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">' say '<svg width="'||xmax||'" height="'||ymax||'" xmlns="http://www.w3.org/2000/svg">' say ' <title>Netzknoten</title>' say ' <desc>eine Karte des Weimarnetzes</desc>' say ' <defs><symbol id="karte"><desc>NetzknotenUndLinien</desc>' IF open(p,f1,'r') then DO DO until EOF(p) z = readln(p) IF pos('=',z)>0 THEN DO ip = subword(z,1,1) cpu = subword(z,3,1) nom = subword(z,8,1) IF nom =? THEN nom = ip IF cpu~=? THEN cpuschnitt = cpuschnitt + cpu CALL setclip(ip||cpu,subword(z,3,1)) CALL setclip(ip||name,nom) CALL setclip(ip||x,subword(z,5,1)) CALL setclip(ip||y,subword(z,6,1)) xx = getclip(ip||x) yy = getclip(ip||y) IF xx~=? & yy~=? THEN DO nodecount = nodecount + 1 offset=random(0,10) say '<circle cx="'||px(xx)||'" cy="'||py(yy)||'" r="6" fill="yellow" stroke="black" />' say '<text x="'||px(xx)+6||'" y="'||py(yy)+offset||'" font-family="'||textstyle||'" font-size="'||textsize||'px">'||getclip(ip||name)||'</text>' END ELSE ohnegps = ohnegps + 1 END IF pos('=',z)=0 & pos('-',z)=0 THEN s = z /* s = startip */ IF pos('=',z)=0 & pos('-',z)=1 THEN DO t = subword(z,2,1) /* t = targetip */ sx = getclip(s||x); sy = getclip(s||y) tx = getclip(t||x); ty = getclip(t||y) IF px(sx)~=? & py(sy)~=? & px(tx)~=? & py(ty)~=? THEN DO say '<line x1="'||px(sx)||'" y1="'||py(sy)||'" x2="'||px(tx)||'" y2="'||py(ty)||'" style="stroke:black; stroke-width:0.5px;" />' END END END CALL close(p) END say '<text x="'||px(11.3021)||'" y="'||py(50.9709)||'" font-family="'||textstyle||'" font-size="'||textsize||'px">...Netzknoten_anonym/mobil/ohneGPS/gesamt:_'||anonym||'/'||mobil||'/'||ohnegps||'/'||ohnegps+nodecount||'_,_Router-CPU-Auslastung:_'||trunc(cpuschnitt/(ohnegps+nodecount),2)||'</text>' say '<text x="'||px(11.3021)||'" y="'||py(50.9706)||'" font-family="'||textstyle||'" font-size="'||textsize||'px">...erzeugt_mit_Commodore_AmigaOS_v3.1_+_ARexx_['||zeit||']</text>' say '</symbol>' say '<image id="map" x="0" y="0" width="'||xmax||'px" height="'||ymax||'px" xlink:href="map.jpg">' say '</image>' say '</defs>' say '<use xlink:href="#map" />' say '<use xlink:href="#karte" />' say '</svg>' exit entfernung: return 1000 parse arg x1,y1,x2,y2 say x1 y1 x2 y2 abstandx = x1 - x2; abstandy = y1 - y2 abstandx = abstandx * 70088; abstandy = abstandy * 111324 abstand = sqr((abstandx**2)+(abstandy**2)) say abstand abstand = substr(abstand,1,pos('.',abstand)-1) return abstand sqr: parse arg ra as = (ra/2)+.1 do for 15; as = (as+ra/as)/2; end return as px: parse arg xx IF xx<kartexmax & xx>kartexmin THEN DO xx = trunc(xmax/((kartexmax-kartexmin)/(kartexmax-xx)),0) xx = xmax - xx END IF xx = '' THEN xx = ? return xx py: parse arg yy IF yy<karteymax & yy>karteymin THEN DO yy = trunc(ymax/((karteymax-karteymin)/(karteymax-yy)),0) END IF yy = '' THEN yy = ? return yy