funkheld Posted January 21, 2012 Share Posted January 21, 2012 (edited) Grafik-Linie with XFORTH : HEX 00 VARIABLE DLIST -2 ALLOT 70 C, 70 C, 70 C, 4D C, 9060 , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D0D , 0D C, 42 C, BF60 , 0202 , 02 , 41 C, DLIST , 230 CONSTANT SDLSTL 9060 CONSTANT SCREEN0 02C4 CONSTANT COLOR0 02C5 CONSTANT COLOR1 02C6 CONSTANT COLOR2 02C8 CONSTANT COLOR4 00 VARIABLE COL 00 VARIABLE CO0 00 VARIABLE CO1 00 VARIABLE CO2 00 VARIABLE CO3 00 VARIABLE X0 00 VARIABLE Y0 00 VARIABLE X1 00 VARIABLE Y1 00 VARIABLE DX 00 VARIABLE DY 00 VARIABLE SX 00 VARIABLE SY 00 VARIABLE ERR 00 VARIABLE E2 : GCLS SCREEN0 C80 0 FILL ; : COLOR DUP 0 = IF 0 CO0 ! 0 CO1 ! 0 CO2 ! 0 CO3 ! THEN DUP 1 = IF 40 CO0 ! 10 CO1 ! 4 CO2 ! 1 CO3 ! THEN DUP 2 = IF 80 CO0 ! 20 CO1 ! 8 CO2 ! 2 CO3 ! THEN 3 = IF C0 CO0 ! 30 CO1 ! C CO2 ! 3 CO3 ! THEN ; : PLOTXY SWAP 4 /MOD 2 PICK DUP 0 = IF CO0 @ COL ! THEN DUP 1 = IF CO1 @ COL ! THEN DUP 2 = IF CO2 @ COL ! THEN 3 = IF CO3 @ COL ! THEN SCREEN0 + SWAP DROP SWAP 28 * + DUP @ COL @ XOR SWAP ! ; : LINIE X1 @ X0 @ - ABS DX ! X0 @ X1 @ < IF 1 SX ! Y1 @ Y0 @ - ABS -1 * DY ! ELSE -1 SX ! Y1 @ Y0 @ - ABS -1 * DY ! THEN Y0 @ Y1 @ < IF 1 SY ! DX @ DY @ + ERR ! ELSE -1 SY ! DX @ DY @ + ERR ! THEN X0 @ Y0 @ PLOTXY BEGIN X0 @ X1 @ = Y0 @ Y1 @ = AND 0 = WHILE 2 ERR @ * E2 ! E2 @ DY @ > IF ERR @ DY @ + ERR ! X0 @ SX @ + X0 ! THEN E2 @ DX @ < IF ERR @ DX @ + ERR ! Y0 @ SY @ + Y0 ! THEN X0 @ Y0 @ PLOTXY REPEAT ; : INIT 0C COLOR4 C! 94 COLOR2 C! DLIST SDLSTL ! 4 2BF C! 2 COLOR 0 X0 ! 0 Y0 ! 4E X1 ! 4E Y1 ! LINIE 4E X0 ! 4E Y0 ! 9E X1 ! 0 Y1 ! LINIE 9E X0 ! 0 Y0 ! 0 X1 ! 0 Y1 ! LINIE ; Edited January 21, 2012 by funkheld Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.