ランダムドット・ステレオグラム ひでき 2008/01/28 23:57:58 ├(2)について 山中和義 2008/01/29 10:27:01 │└回転ランダムドット・ステレオグラムを作っ... ひでき 2008/01/31 23:42:09
Re: (2)について |
返事を書く ノートメニュー |
ひでき <jweuhhncel> 2008/01/31 23:42:09 | |
回転ランダムドット・ステレオグラムを作ってみました。
山中様に教えていただいたプログラムに回転を加えてみました。 z軸の周りの回転は、正しくできているのですが、x軸方向は 自信が有りません。数学的に正しくなければ、どなたか間違いを 指摘していただけませんか。よろしくお願いします。 !ランダムドット・ステレオグラム RANDOMIZE LET h=2 LET k=40 LET m=40 LET a=10 SET WINDOW -5,5,-5,5 INPUT PROMPT "回数=":n1 INPUT PROMPT "z軸周りに何[°]回転 =":kz INPUT PROMPT "x軸周りに何[°]回転 =":kx FOR n=1 TO n1 LET x0=10*RND-5 LET y0=10*RND-5 LET col=INT(7*RND)+1 SET AREA COLOR col PLOT AREA: x0,-y0;x0+0.05,-y0;x0+0.05,-y0-0.05;x0,-y0-0.05 FOR s=1 TO -1 STEP -2 LET xg=x0 LET yd=y0 DO LET x=xg LET y=yd LET z=k LET m2=1 LET xs=(xg+h*s)/a LET ys=yd/a LET zs=-m/a FOR c=1 TO 3 DO LET m1=m2 LET x=x+xs LET y=y+ys LET z=z+zs CALL kansuu(x,y) LET m2=z-rittaiz LOOP WHILE m1*m2>0 LET xs=-xs/a LET ys=-ys/a LET zs=-zs/a NEXT c CALL zahyo(x,y,z) IF ABS(xg)>5 THEN EXIT DO PLOT AREA: xg,-yd;xg+0.05,-yd;xg+0.05,-yd-0.05;xg,-yd-0.05 LOOP NEXT s NEXT n SUB zahyo(x,y,z) LET xg=((k-z)*h*s+m*x)/(k+m-z) LET yd=(m*y)/(k+m-z) END SUB SUB kansuu(x,y) LET xz=x*COS(RAD(kz))-y*SIN(RAD(kz)) LET yz=x*SIN(RAD(kz))+y*COS(RAD(kz)) LET yx=z*SIN(RAD(kx))+yz*COS(RAD(kx)) LET zx=3*(COS(xz)+COS(yx)) !描画する関数 LET rittaiz=zx*COS(RAD(kx))-yz*SIN(RAD(kx)) END SUB END |
├(1)について 山中和義 2008/01/29 10:46:59 (修正1回) ├ワイヤーフレームのステレオ画像(擬似3D... 山中和義 2008/02/02 20:48:40 │└!2次元の絵(DRAW文)のステレオペア 山中和義 2008/02/04 11:59:05 (修正1回) └ネットで、ステレオグラムについて検索して... ひでき 2008/02/03 13:30:56