vd-archiv:listings:4d2014-02-listings
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
vd-archiv:listings:4d2014-02-listings [2017-05-22 06:45] – mka | vd-archiv:listings:4d2014-02-listings [2017-05-23 17:14] (aktuell) – mka | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== 4d2014-02 Listings ====== | ====== 4d2014-02 Listings ====== | ||
- | ===== gforth plotter ===== | + | ===== gforth plotter |
- | {{ : | + | {{ : |
+ | Der Plotter ist ein Nexus-7 Android-Tablet von Google/ | ||
+ | |||
+ | ===== gforth plotter Teil 2 ===== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | \ 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 | ||
+ | \ ####################### | ||
+ | |||
+ | | ||
+ | |||
+ | : go _begin \ Dateibeginn | ||
+ | |||
+ | 0 0 0 255 _color \ schwarz | ||
+ | | ||
+ | 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 | ||
+ | |||
+ | | ||
+ | 980 0 do i 200 + i s>f 30e f/ fsin 100e f* 770e f+ f>s | ||
+ | _plot \ Sinus | ||
+ | loop _plot-off | ||
+ | |||
+ | | ||
+ | |||
+ | _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 | ||
+ | | ||
+ | |||
+ | _show \ zeigen | ||
+ | 100 _pause \ 100 Sekunden | ||
+ | |||
+ | _end ; \ Dateiende | ||
+ | |||
+ | go \ Autostart | ||
+ | |||
+ | \ finis | ||
+ | |||
+ | </ |
vd-archiv/listings/4d2014-02-listings.1495428320.txt.gz · Zuletzt geändert: 2017-05-22 06:45 von mka