PDA

查看完整版本 : [求助]矩阵转动


simulation
2008-09-23, 03:27
小弟先谢谢各位看贴的达人了:
程序如下,

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function [tA] = erzeuge_tA(width,height,depth,lambda,pS,tS,gA,dA,gB,dB)


lambda = 650e-9;
depth = lambda/4;

pS = 160;
tS = 1600;
gA = 16;
dA = gA/2;
gB = 12;
dB = gB/2;
%W0 = 130;
%lage = width/2
width = 1600;
height = width;




phi0 = -4*pi*depth/lambda;
start = fix((height-tS)/2);
N = fix(width/pS);

tA(1:height,1:width)=1;

for f=0:1:N-1
iA=1;
iB=1;
for y=start+1:1:start+tS
if iA<=dA
for x=f*pS+1:1:f*pS+pS/4
tA(y,x)=exp(-i*phi0);
end;
end;
if iA==gA
iA=0;
end;
iA=iA+1;
if iB<=dB
for x=f*pS+pS/4+1:1:f*pS+pS/2
tA(y,x)=exp(-i*phi0);
end;
end;
if iB==gB
iB=0;
end;
iB=iB+1;
end;
end;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

根据我上面编好的程序运行会生成如下图形:
http://img140.imageshack.us/img140/1610/gijp9.jpg
光栅结构图

以上的工作花了我2个礼拜的时间,之后就卡住了,我尝试了所有的办法来把上面的光栅结构旋转一定的角度,可惜都失败了
实在没有办法了,希望大家能帮帮我。

我最后的思路是乘上一个转动矩阵,也就[cost -sint; sint cost],不过这个是2X2的矩阵,怎么都没有办法和我之前的1600X1600的矩阵相乘。

simulation
2008-09-23, 03:30
如果有什么地方表达的不清楚的请尽管发问,我会细细解答的,再次谢谢各位达人了!

xiezhh
2008-09-23, 15:34
imrotate(tA,60,'bilinear','crop');

simulation
2008-09-23, 16:54
imrotate(tA,60,'bilinear','crop');

谢谢,这行是跟在哪条语句后面呢,麻烦请说的稍微详细点,可以么?

simulation
2008-09-24, 02:14
我测试了1天,都无法正常运行下去,不过还是谢谢了

xiezhh
2008-09-24, 22:03
在程序的最后一行的后面写上

tB=imrotate(tA,60,'bilinear','crop');
imshow(tB)