REM rotate - example program to ilustrate the use of XROT, XTRAN, XSCAL and REM MRESET comands. This is a QB2C code. Run it with: brun rotate -u REM Date: 02.May 1999 REM Author: Mario Stipcevic (stipcevi@rudjer.irb.hr) SCREEN (100,100), 400,400 :REM Open a graphics (X11) window PALETTE 2, 255, 0, 0 :REM Define red color index #2 SET LWID 3 :REM Setline width to 5 pixels XTRAN (100, 100) :REM Set origin b% = 50 :REM Box size n% = 1 :REM Number of turns for rotation PAUSE 1 :REM Wait 1 second REM Translate: FOR y% = 100 TO 200 STEP 2 x% = y% XTRAN (x%, y%) LINE (-b%, -b%)-(b%, b%), 1, B: REM Draw new XUPDATE PAUSE 0.05 LINE (-b%, -b%)-(b%, b%), 0, B: REM erase old NEXT REM Resize: FOR z = 1.000 TO 2.000 STEP 0.05 XSCAL 1, z LINE (-b%, -b%)-(b%, b%), 1, B: REM Draw new XUPDATE PAUSE 0.05 LINE (-b%, -b%)-(b%, b%), 0, B: REM Erase old NEXT FOR z = 1.000 TO 2.000 STEP 0.05 XSCAL z, 3-z LINE (-b%, -b%)-(b%, b%), 1, B: REM Draw new XUPDATE PAUSE 0.05 LINE (-b%, -b%)-(b%, b%), 0, B: REM Erase old NEXT FOR z = 1.000 TO 2.000 STEP 0.05 XSCAL 3-z, 1 LINE (-b%, -b%)-(b%, b%), 1, B: REM Draw new XUPDATE PAUSE 0.05 LINE (-b%, -b%)-(b%, b%), 0, B: REM Erase old NEXT MRESET: XTRAN (200, 200) REM Rotate: FOR ang = 0 TO 360*n% STEP 5 XROT ang LINE (-b%, -b%)-(b%, b%), 1, B: REM Draw new XUPDATE PAUSE 0.05 LINE (-b%, -b%)-(b%, b%), 0, B: REM Erase old NEXT REM Rotate with XOR effect: SET DRMD 2 FOR ang = 0 TO 360*n% STEP 5 XROT ang LINE (-b%, -b%)-(b%, b%), 1, B: REM Draw new XUPDATE PAUSE 0.05 LINE (-b%, -b%)-(b%, b%), 0, B: REM Erase old NEXT REM Rotate red box: SET DRMD 1 LINE (-b%, -b%)-(b%, b%), 0, B: REM Erase old FOR ang = 0 TO 360*n% STEP 5 XROT ang LINE (-b%, -b%)-(b%, b%), 2, BF: REM Draw new XUPDATE PAUSE 0.05 LINE (-b%, -b%)-(b%, b%), 0, BF: REM Erase old NEXT LINE (-b%, -b%)-(b%, b%), 2, BF: REM Draw new XUPDATE REM Draw the Sun: FOR ang = 0 TO 90*n% STEP 5 XROT ang LINE (-b%, -b%)-(b%, b%), 2, BF: REM Draw new XUPDATE PAUSE 0.05 NEXT MRESET XTRAN (200, 300) SET TXAL 2, 2 XTEXT (0, 0), "Pres 'q' to quit!" XUPDATE a$ = INKEY$ :REM Wait until any key is pressed END