^r4/lib/gui.txt
#s 10.0#p 28.0#b 2.6666#zoom 6.0#dt 0.002
#x 10.0#y 0.0#z 10.0
:int 16 >> ;
:asigna y x - s *. dt *. 'x +! p z - x *. y - dt *. 'y +! x y *. b z *. - dt *. 'z +! ;
:pinta verde zoom y *. 250.0 + int 400.0 zoom z *. - int pix! rojo zoom x *. 550.0 + int 400.0 zoom z *. - int pix! azul zoom x *. 800.0 + int 250.0 zoom y *. - int pix! ;
:figura 10 ( asigna pinta 1- 0? ) drop ;
:main clrscr show figura 'exit >esc< ;
: main ;
--
Has recibido este mensaje porque estás suscrito al grupo "reda4" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a reda4+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
| lorenz en 3d real
|-------------------------------------------
^r4/lib/gui.txt
#xcam 0 #ycam 0 #zcam -100.0
#xr 0.20 #yr 0.25
:3dop project3d op ;
:3dline project3d line ;
:3dpoint 3drop ;
:ejes
-5.0 0 0 3dop 5.0 0 0 3dline
0 -5.0 0 3dop 0 5.0 0 3dline
0 0 -5.0 3dop 0 0 5.0 3dline ;
:marcas
-50.0 ( 50.0 <? )(
dup 0.01 0 3dop dup -0.01 0 3dline
0.01 over 0 3dop -0.01 over 0 3dline
0 0.01 pick2 3dop 0 -0.01 pick2 3dline
10.0 + ) drop ;
:grillaxy
-50.0 ( 50.0 <=? )(
dup -50.0 0 3dop dup 50.0 0 3dline
-50.0 over 0 3dop 50.0 over 0 3dline
10.0 + ) drop ;
:grillayz
-50.0 ( 50.0 <=? )(
0 over -50.0 3dop 0 over 50.0 3dline
0 -50.0 pick2 3dop 0 50.0 pick2 3dline
10.0 + ) drop ;
:grillaxz
-50.0 ( 50.0 <=? )(
dup 0 -50.0 3dop dup 0 50.0 3dline
-50.0 0 pick2 3dop 50.0 0 pick2 3dline
10.0 + ) drop ;
:colordega
dup 5.0 + $ff 10.0 */ ink ;
:colorhsv
dup 5.0 + 1.0 10.0 */ 1.0 1.0 hsv2rgb ink ;
|---- lorenz
#s 10.0
#p 28.0
#b 2.6666
#zoom 6.0
#dt 0.008
#x 10.0
#y 0.0
#z 10.0
:asigna
y x - s *.
dt *. 'x +!
p z - x *. y -
dt *. 'y +!
x y *. b z *. -
dt *.
'z +!
;
#lorenz )( 120000 | 10000 puntos... con multiplos de 12 (3 puntos de 4 bytes)
#lorenz> 'lorenz | cursor
:lorenz!+ | z y x --
lorenz> 'lorenz> =? ( 'lorenz nip ) | la direccion del cursor sirve de limite en el array
!+ !+ !+
'lorenz> ! ;
:lorenz3d
asigna z y x lorenz!+
lorenz>
'lorenz> =? ( 'lorenz nip ) | ultimo punto
>r r@+ r@+ r@+ 3dop
r>
( 'lorenz> <? )(
>r r@+ r@+ r@+ 3dline
r> ) drop
'lorenz ( lorenz> <? )(
>r r@+ r@+ r@+ 3dline
r> ) drop
;
:teclado
'exit >esc<
[ 0.1 'ycam +! ; ] <up>
[ -0.1 'ycam +! ; ] <dn>
[ 0.1 'xcam +! ; ] <le>
[ -0.1 'xcam +! ; ] <ri>
[ 0.1 'zcam +! ; ] <pgdn>
[ -0.1 'zcam +! ; ] <pgup>
;
:freelook
xymouse
sh 2/ - 7 << swap
sw 2/ - neg 7 << swap
neg mrotx
mroty ;
:inicio
0 paper
33
show clrscr
dup "%d" print
teclado
1.0 3dmode
freelook
xcam ycam zcam mtrans
$0f0f0f ink grillaxy grillayz grillaxz
verde
lorenz3d
cminiflecha ;
: inicio ;