Benutzer-Werkzeuge

Webseiten-Werkzeuge


vd-archiv:listings:4d2014-02-listings

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
vd-archiv:listings:4d2014-02-listings [2017-05-22 06:41]
mka angelegt
vd-archiv:listings:4d2014-02-listings [2017-05-23 17:14] (aktuell)
mka
Zeile 1: Zeile 1:
 ====== 4d2014-02 Listings ====== ====== 4d2014-02 Listings ======
  
-{{ :​vd-archiv:​listings:​gforth-plotter.zip |}}+===== gforth plotter ​Teil 1 =====
  
 +{{ :​vd-archiv:​listings:​gforth-plotter.zip |Teil 1 aus 4d2014-01}} - gforth-grafik1-fs,​ plotter.fs, xplot.bas
 +
 +Der Plotter ist ein Nexus-7 Android-Tablet von Google/​Asus. Die Verbindung vom gforth auf dem Laptop dorthin übernimmt eine Datei. ​
 +
 +===== gforth plotter Teil 2 =====
 +
 +{{ :​vd-archiv:​listings:​dateien-grafik-gforth-teil2.zip |}}
 +
 +
 +<​file>​
 +
 +
 + \ Grafik für Gforth, von Hannes Teich; Teil 2 
 + \ (Teil 1 in 4d2014-01) ​
 +
 + \ Diese 10 Kommandos sind schon beschrieben worden:
 + : _begin ( -- ) ... ;
 + : _color { r g b a -- } ... ;
 + : _clear ( -- ) ... ;
 + : _line { x1 y1 x2 y2 -- } ... ;
 + : _rect { x y w h f -- } ... ;
 + : _oval { x y w h f -- } ... ;
 + : _circle { x y r f -- ) ... ;
 + : _plot-on ( -- ) ... ;
 + : _plot { x y } ... ;
 + : _plot-off ( -- ) ... ;
 + : _pause { s -- } ... ;
 + : _show ( -- ) ... ;
 + : _end ( -- ) ... ;
 +
 + \ Ellipsenbogen zeichnen (hohl oder gefuellt)
 + : _arc { x y w h b a f } ." arc "
 + $AA0B 2>buf x 2>buf y 2>buf w 2>buf h 2>buf
 + b 2>buf a 2>buf f 2>buf ;
 +
 + \ Tortenstueck zeichnen (hohl oder gefuellt)
 +
 + : _pie { x y w h b a f } ." arc "
 + $AA0C 2>buf x 2>buf y 2>buf w 2>buf h 2>buf
 + b 2>buf a 2>buf f 2>buf ;
 +
 + \ Zeichensatz und Hoehe waehlen
 + : _font { typ h } ." font "
 + $AA0D 2>buf typ 2>buf h 2>buf ;
 +
 + \ Text einfuegen (big endian)
 + : _text-on { x y } ." text-on "
 + $AA0E 2>buf x 2>buf y 2>buf ;
 + : _text { abc } ." text " abc 2>buf ;
 + : _text-off ( -- ) ." text-off " $AA00 2>buf ;
 +
 + \ Bezugsort waehlen
 + : _origin { x y } ." origin "
 + $AA0F 2>buf x 2>buf y 2>buf ;
 +
 + \ Nachfolgenden Plot drehen
 + : _rotate { a } ." rotate "
 + $AA10 2>buf a 2>buf ;
 +
 + \ Rechteck mit runden Ecken zeichnen (hohl oder gefuellt)
 + : _rndrect { x y w h r f } ." rndrect "
 + $AA11 2>buf x 2>buf y 2>buf w 2>buf h 2>buf
 + r 2>buf f 2>buf ;
 +
 + \ Dreieck zeichnen (hohl oder gefuellt)
 + : _triang { x1 y1 x2 y2 x3 y3 f } ." triang "
 +
 + $AA12 2>buf x1 2>buf y1 2>buf x2 2>buf y2 2>buf
 + x3 2>buf y3 2>buf f 2>buf ;
 +
 + \ Grafikausrichtung speichern
 + : _save ( -- ) ." save "
 + $AA13 2>buf ;
 +
 + \ Grafikausrichtung wiederherstellen
 + : _restore ( -- ) ." restore "
 + $AA14 2>buf ;
 +
 +
 + \ #######################​
 + \ Eine Grafik formulieren
 + \ #######################​
 +
 + ​create-wfile \ Ausgabe-Datei erzeugen
 +
 + : go _begin \ Dateibeginn
 +
 + 0 0 0 255 _color \ schwarz
 + ​_clear \ ausfuellen
 + 255 255 255 255 _color \ weiss
 +
 + _show \ zeigen
 + 1 _pause \ 1 Sekunde
 +
 + 400 300 800 600 0 _rect \ Rechteck
 + 400 300 1200 900 _line \ Diagonale
 + 1200 300 400 900 _line \ Diagonale
 +
 + _show \ zeigen
 + 1 _pause \ 1 Sekunde
 +
 + 400 300 800 600 0 _oval \ Ellipse
 +
 + _show \ zeigen
 + 1 _pause \ 1 Sekunde
 +
 + 800 500 200 0 _circle \ Kreis
 +
 + _show \ zeigen
 +
 + 1 _pause \ 1 Sekunde
 +
 + 627 330 350 350 220 100 1 _pie \ Torte
 +
 + 100 100 100 255 _color \ grau
 +
 + 400 300 800 600 45 90 1 _arc \ Bogen
 +
 + _show \ zeigen
 + 1 _pause \ 1 Sekunde
 +
 + 255 255 255 255 _color \ weiss
 +
 + 350 250 900 700 50 0 _rndrect \ runde Ecken
 +
 + _show \ zeigen
 + 1 _pause \ 1 Sekunde
 +
 + _save \ Drehrichtung
 + -10 _rotate \ Drehung links
 +
 + ​_plot-on
 + 980 0 do i 200 + i s>f 30e f/ fsin 100e f* 770e f+ f>s
 + _plot \ Sinus
 + loop _plot-off
 +
 + ​_restore \ Drehung vergessen
 +
 + _show \ zeigen
 + 1 _pause \ 1 Sekunde
 +
 + 100 100 100 255 _color \ grau
 +
 + 1300 900 1700 500 1400 300 1 _triang \ volles Dreieck
 +
 + _show \ zeigen
 + 1 _pause \ 1 Sekunde
 +
 + 255 255 255 255 _color \ weiss
 +
 + 1500 650 1600 460 1400 460 1 _triang \ volles Dreieck
 +
 + _show \ zeigen
 + 1 _pause \ 1 Sekunde
 +
 + 190 940 _origin \ neuer Bezugspunkt
 +
 + -90 _rotate \ Drehung links
 +
 + 3 70 _font \ 3 = Serif
 +
 + 135 100 _text-on \ Text x y
 + 256 [char] H * [char] e + _text \ "Hello World "
 + 256 [char] l * [char] l + _text
 + 256 [char] o * bl + _text
 + 256 [char] W * [char] o + _text
 + 256 [char] r * [char] l + _text
 + 256 [char] d * bl + _text
 + ​_text-off
 +
 + _show \ zeigen
 + 100 _pause \ 100 Sekunden
 +
 + _end ; \ Dateiende
 +
 + go \ Autostart
 +
 +\ finis
 +
 +</​file>​
vd-archiv/listings/4d2014-02-listings.1495428106.txt.gz · Zuletzt geändert: 2017-05-22 06:41 von mka