ランダムドット・ステレオグラム

 投稿者:GAI  投稿日:2010年 7月22日(木)19時50分52秒
  以前山中さんが掲載されていた作品で

!ランダムドット・ステレオグラム(RDS)


SET POINT STYLE 1

LET  XMAX=10
LET  XMIN=-10
LET  DX=(XMAX-XMIN)/6

LET  YMAX=10
LET  YMIN=-10

SET WINDOW XMIN,XMAX, YMIN,YMAX

LET  ZMAX=10
LET  ZMIN=-10
LET  Z0=DX/(4*(ZMAX-ZMIN))

FOR I=1 TO 10000
   LET  Y0=(YMAX-YMIN)*RND+YMIN ![YMIN,YMAX]の任意の点
   LET  XX=XMIN+DX+Z0*ZZ(XMIN+DX/2,Y0)

   LET  X0=(XX-XMIN)*RND+XMIN ![XMIN,XX]の任意の点
   DO
      PLOT POINTS: X0,Y0
      LET  X0=X0+DX+Z0*ZZ(X0+DX/2,Y0)
   LOOP WHILE X0<XMAX
NEXT I

FUNCTION ZZ(X,Y)
    LET  Fxy=3*COS(SQR(X*X+Y*Y)) !曲面
!   LET  Fxy=3*(COS(X)+COS(Y)) !曲面
   LET  ZZ=Fxy
   IF Fxy>ZMAX THEN LET  ZZ=ZMAX !上限
   IF Fxy<ZMIN THEN LET  ZZ=ZMIN !下限
END FUNCTION

END

のプログラムを拝見しました。

立体に見える形はこのように関数で記述できるものに限られるのでしょうか?
例えば写真で撮した人の顔などをランダムドット・ステレオグラムにすることはできませんか?(できたらカラーで見たい。)
また、メモ帳などに書いた文字などもステレオグラムにできたら楽しいのですが・・・
ご検討よろしくお願いします。
 

Re: ランダムドット・ステレオグラム

 投稿者:白石 和夫メール  投稿日:2010年 7月24日(土)17時06分43秒
  > No.1315[元記事へ]

ちょっと動かして調べてみましたが,Fuction ZZ(x,y)は,xとして-10~11.666…,yとして-10~10の範囲の引数に対して定義されればいいようです。(結果の値の範囲はZMIN以上,ZMAX以下)
たとえば,2次元配列の添字を上述の範囲に換算すれば,2次元配列に収めた画像を扱うこともできると思います。ただし,単純なプログラムだと,画像の濃淡が奥行きの深さになってしまいます。
 

戻る