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

  ランダムドット・ステレオグラム ひでき 2008/01/28 23:57:58 
  (2)について 山中和義 2008/01/29 10:27:01 
  │└回転ランダムドット・ステレオグラムを作っ... ひでき 2008/01/31 23:42:09 
  (1)について 山中和義 2008/01/29 10:46:59  (修正1回)
  ワイヤーフレームのステレオ画像(擬似3D... 山中和義 2008/02/02 20:48:40 

Re: ランダムドット・ステレオグラム  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/02/02 20:48:40
ワイヤーフレームのステレオ画像(擬似3DCG手法)

物体の回転角を左右ずらして、カメラ(視点)位置を変更したかのような画像を描きます。


※SAMPLEフォアルダ内 3DPLOT.BASを修正

SUB rotx(x,y,z,a)
LET y0=y*cos(a)-z*sin(a)
LET z0=y*sin(a)+z*cos(a)
LET y=y0
LET z=z0
END SUB
SUB roty(x,y,z,a)
LET x0=x*cos(a)+z*sin(a)
LET z0=-x*sin(a)+z*cos(a)
LET x=x0
LET z=z0
END SUB
SUB rotz(x,y,z,a)
LET x0=x*cos(a)-y*sin(a)
LET y0=x*sin(a)+y*cos(a)
LET x=x0
LET y=y0
END SUB
SUB convert(x,y,z)
CALL rotz(x,y,z,RAD(-30+B))
CALL rotx(x,y,z,RAD(-60))
END SUB
SUB PlotTo(x,y,z)
LET x1=x !save it
LET y1=y
LET z1=z
CALL convert(x1,y1,z1)
PLOT LINES:x1+A,y1;
END SUB
SUB PlotText(x,y,z,s$)
CALL convert(x,y,z)
PLOT TEXT ,AT x+A,y: s$
END SUB


!DEF f(x,y)=x^2-y^2 !曲面
!DEF f(x,y)=(COS(x*5)+COS(y*5))/5
DEF f(x,y)=COS(SQR((x*15)^2+(y*15)^2))/8

SET bitmap SIZE 601,301 !表示領域
LET s=1.5
SET WINDOW -s*2.5,s*2.5,-s,s

LET A=1.7 !左右の間隔
LET B=-3 !±回転角
CALL axes
CALL DRAW

LET A=-A
LET B=-B
CALL axes
CALL DRAW


SUB DRAW !ワイヤーフレームで曲面を描く
FOR x=-1 TO 1 step 0.1
FOR y=-1 TO 1 step 0.1
LET z=f(x,y)
CALL PlotTo(x,y,z)
NEXT y
PLOT LINES
NEXT x
FOR y=-1 TO 1 step 0.1
FOR x=-1 TO 1 step 0.1
LET z=f(x,y)
CALL PlotTo(x,y,z)
NEXT x
PLOT LINES
NEXT y
END SUB

SUB axes !xyz軸
SET LINE COLOR 4
CALL PlotTo(0,0,0)
CALL PlotTo(1,0,0)
PLOT LINES
SET LINE COLOR 3
CALL PlotTo(0,0,0)
CALL PlotTo(0,1,0)
PLOT LINES
SET LINE COLOR 2
CALL PlotTo(0,0,0)
CALL PlotTo(0,0,1)
PLOT LINES
SET LINE COLOR 1

CALL PlotText(1,0,0,"x")
CALL PlotText(0,1,0,"y")
CALL PlotText(0,0,1,"z")
END SUB

END

  │└!2次元の絵(DRAW文)のステレオペア 山中和義 2008/02/04 11:59:05  (修正1回)
  ネットで、ステレオグラムについて検索して... ひでき 2008/02/03 13:30:56 

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