新しく発言する  EXIT  インデックスへ
ランダムドット・ステレオグラム

  ランダムドット・ステレオグラム ひでき 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 

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。