|
十進BASIC-7.3.5を使わせて頂いています。
下記プログラムをツールボタンで複素数モードと2進モードに変更(特別な意味は
なし)してRUNしたら、螺旋軌道を描くボールの位置(丸印)と半径線の描画がさ
れませんでした。10進モードでは正常です。1000桁モードは「cos関数をサポート
しない」と言うメッセージが出ます。
ボール位置と半径線の描画タイミングは、MOD関数を使って判断しているので、この関数は10進モード専用関数かな?と思いましたが、そうなのでしょうか。
SET WINDOW -25,5,-15,15
SET POINT STYLE 4
!DRAW grid
LET ydo=-20
LET xdo=-60
LET zdo=75
LET hrad=PI/180
LET xrad=xdo*hrad
LET yrad=ydo*hrad
LET zrad=zdo*hrad
LET R=8
LET f=0.1
LET w=2*PI*f
LET vz=0.6
CALL henkan(10,0,0,xrad,yrad,zrad,x3_,y3_,z3_)
PLOT LINES:0,0;x3_,y3_
CALL henkan(-10,0,0,xrad,yrad,zrad,x3_,y3_,z3_)
PLOT LINES:0,0;x3_,y3_
SET LINE COLOR "red"
CALL henkan(0,10,0,xrad,yrad,zrad,x3_,y3_,z3_)
PLOT LINES:0,0;x3_,y3_
CALL henkan(0,-10,0,xrad,yrad,zrad,x3_,y3_,z3_)
PLOT LINES:0,0;x3_,y3_
SET LINE COLOR "blue"
CALL henkan(0,0,28,xrad,yrad,zrad,x3_,y3_,z3_)
PLOT LINES:0,0;x3_,y3_
SET LINE COLOR "green"
CALL henkan(r,0,0,xrad,yrad,zrad,x3_,y3_,z3_)
FOR t=0 TO 10 STEP 0.05
LET x=r*COS(w*t)
LET y=r*SIN(w*t)
LET z=0
CALL henkan(x,y,z,xrad,yrad,zrad,x3,y3,z3)
PLOT LINES:x3_,y3_;x3,y3
LET x3_=x3
LET y3_=y3
NEXT T
SET LINE COLOR "black"
FOR t=0 TO 41 STEP 0.05
LET x=r*COS(w*t)
LET y=r*SIN(w*t)
LET z=vz*t
CALL henkan(x,y,z,xrad,yrad,zrad,x3,y3,z3)
PLOT LINES:x3_,y3_;x3,y3
LET x3_=x3
LET y3_=y3
LET cnt=MOD(t,0.4)
IF cnt=0 THEN
LET x=0
LET y=0
CALL henkan(x,y,z,xrad,yrad,zrad,x0_,y0_,z0_)
PLOT LINES:x0_,y0_;x3_,y3_
PLOT POINTS:x3_,y3_
END IF
NEXT T
END
EXTERNAL SUB henkan(x,y,z,xa,ya,za,x3,y3,z3)
LET x1=x*COS(ya)+z*SIN(ya)
LET y1=y
LET z1=-x*SIN(ya)+z*COS(ya)
LET x2=x1
LET y2=y1*COS(xa)-z1*SIN(xa)
LET z2=y1*SIN(xa)+z1*COS(xa)
LET x3=x2*COS(za)-y2*SIN(za)
LET y3=x2*SIN(za)+y2*COS(za)
LET z3=z2
END SUB
|
|