Rotozoomer

14 views
Skip to first unread message

galil...@gmail.com

unread,
Apr 1, 2016, 2:19:06 PM4/1/16
to reda4
Otro dolor de cabeza que casi me vuelve loco. Menos mal que Pablo me hechó una mano (¡gracias!) Cuando iba a preguntarle si había alguna manera de comprobar el estado de la pila de datos, se anticipó y me sugirió que utilizara la palabra "trace". Ahora sí que podía avanzar. De esta manera, conseguí dar con la clave final que permitió que se ejecutara correctamente el programa. El código es más largo que su equivalente en Yabasic, pero mucho más rápido.

Aquí está la versión final:

^r4/lib/gui.txt

#cs
#ss
#color ( 0 ) ( 0 ) ( 0 )

:cang 0.002 + 
dup cos over sin abs *. 128 *. 'cs !
dup sin dup abs *. 128 *. 'ss ! ;
:ctono | y x --
dup cs * pick2 ss * - >r over cs * over ss * + r> and 256 / abs
dup dup 'color c!+ c!+ c!+ drop ;
:dot | c x y --
0 <? ( 2drop ; ) sh >=? ( 2drop ; ) | Esta linea y la siguiente comprueba que no se salga
swap 0 <? ( 2 drop ; ) sw >=? ( 2drop ; ) swap
setxy color px!+ ;

:bucle -160 ( 159 <? )( ctono dup 160 + pick2 160 + dot 1+ ) drop ;

: clrscr 0 show cang -100 ( bucle 1+ 99 >? ) drop 'exit >esc< ;


Ya veréis qué efecto tan curioso.

Reply all
Reply to author
Forward
0 new messages