100 SCREEN 0:KLOAD ON :PRIORITY 10,5: SETPFONT 1,4,(2,2,2,0,0,0):OBJ(1,@XRV)=.001 110 ' 120 ' 表面色の設定 130 ' 140 FR=RND(32):FG=RND(32):FB=RND(32) 150 SETATR 0,6,(4,1,3,0,RGB(FR,FG,FB),8) 160 LINE (30,0)-(47,14),RGB(FR,FG,FB),BF 170 KPRINT (64,0),"表面色" 180 ' 190 ' 光源色の設定 200 ' 210 SR=RND(32):SG=RND(32):SB=RND(32) 220 LINE (30,32)-(47,46),RGB(SR,SG,SB),BF 230 KPRINT (64,16),"光源色" 240 ' 250 ' 環境光の設定 260 ' 270 BR=RND(32):BG =RND(32):BB=RND(32) 280 LINE (30,16)-(47,30),RGB(BR,BG,BB),BF 290 KPRINT (64,32),"環境光" 300 SETLIGHT 0,1,0,RGB(SR,SG,SB),RGB(BR,BG,BB) 310 ' 320 ' 光の入射角の設定 330 ' 340 FOR R=0 TO 180 350 LOCATE 3,7:PRINT USING "### degree";R 360 ' 370 ' ハードウェアの色計算のシミュレート 380 ' 390 T=XCOS(R/360)*&HF.FFFC 400 PR=FR+SR-31+T-BR 410 PG=FG+SG-31+T-BG 420 PB=FB+SB-31+T-BB 430 PP=RGBADD( 0,PR,PG,PB) 440 CC=RGBADD(PP,BR,BG,BB) 450 LINE (100,100)-(163,163),CC,BF 460 ' 470 ' キー入力待ち 480 ' 490 FOR J=0 TO 1:J=PAD(0,1)-(INKEY$<>"") :NEXT :NEXT 500 GOTO 150