谁做过"对眼立体"啊???(50)

  • 主题发起人 主题发起人 zhtiger126
  • 开始时间 开始时间
Z

zhtiger126

Unregistered / Unconfirmed
GUEST, unregistred user!
就是好多重复单元,然后当你失去焦掉,图象错位的时候,看到立体效果,,,我做了个软件,但算法有些问题,图象不是很精确...谁知道如何计算啊?
 
不明白你说什么。可以说得更清楚一些吗?
 
网上有代码,我试过,正确:procedure Picture3D(mBitmap3D, mBitmap2D, mBitmapMask:TBitmap;mLevelList:array of TRecordLevel); { 制作三维立体画 }// ~~~~~~~~~~~~~~~~空图片 ~~~~~~~~~~~2维图片 ~~~~~~~~~~背景var X,Y,I,J,W,H:Integer; vColor:TColor;begin mBitmap3D.Assign(nil); W:=mBitmapMask.Width; H:=mBitmapMask.Height; mBitmapMask.Height:=form1.Height; //for i:=1 to form1.height div H do mBitmapMask.Canvas.CopyRect(rect(0,i*H,W,i*H+H),mBitmapMask.Canvas,rect(0,0,W,H)); mBitmap3D.Width:=w*(mBitmap2D.Width div W); mBitmap3D.Height:=mBitmap2D.height; mBitmap3D.Canvas.Draw(0,0,mBitmapMask); form1.Edit1.text:=intToStr(mBitmap2D.Width div W); for I:=0 to (mBitmap2D.Width div W) do //整数个背景多次横向平铺. begin for Y:=0 to mBitmapMask.Height-1 do begin for X:=0 to W-1 do begin if (X+W*I>=mBitmap2D.Width) or (Y>mBitmap2D.Height) then continue; vColor:=mBitmap2D.Canvas.Pixels[X+W*I,Y]; //看样子mBitmap2D要有mBitmap3D的宽度才行!!!! for J:=Low(mLevelList) to High(mLevelList) do //各种高度扫描(不同的高度颜色不同,只有六个层次0-5) if (mLevelList[J].rColor=vColor) then begin if form1.checkbox1.Checked then //要求显著展示2D图 begin if vColor=clBlack then begin if X+mLevelList[J].rLevel>=W then mBitmapMask.Canvas.Pixels[X,Y]:=mBitmapMask.Canvas.Pixels[X+mLevelList[J].rLevel-W,Y] else mBitmapMask.Canvas.Pixels[X,Y]:=clwhite; Break; end; end else //正常显示3D图片 begin if X+mLevelList[J].rLevel>=W then mBitmapMask.Canvas.Pixels[X,Y]:=mBitmapMask.Canvas.Pixels[X+mLevelList[J].rLevel-W,Y] else mBitmapMask.Canvas.Pixels[X,Y]:={clwhite;//}mBitmapMask.Canvas.Pixels[X+mLevelList[J].rLevel,Y]; Break; end; end; end; end; mBitmap3D.Canvas.Draw(W*Succ(I),0,mBitmapMask); end;end; { Picture3D }
 
原理是这样的:准备两个图片:一个是灰度图片,灰度越大,表示越接近你,灰度越黑,表示越远离你.好比登高线图;另一个图片是重复单元,比上面的要小很多,是平铺到整个图片里的然后,根据灰度图片的灰度等级调治背景,因为,背景是有很多重复单元平铺成的,我们看久,失去焦点后,可能会交叉重叠,由于我们背景做了处理,所以,某些地方重叠情况会发生变化,而这些变化是根据灰度图来的,我们可以看到一个立体的图片.这里不好贴图,否则我贴一个出来.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部