作者geminicstar (小散)
看板MATLAB
标题Re: [问题]原点不再[0,0] 求夹角
时间Fri Dec 9 19:19:50 2011
※ 引述《geminicstar (小散)》之铭言:
: 如题!!
: 我现在原点设在[85,58]
: 我想取的二维中的任两点夹角要怎样求呢??
: 我想了好几天一直弄不出来XD
: 对了~矩阵大小为170*116
: [补充] 我後来这样写~请大家帮我看这样是对的吗?
: imgsize1=size(re);
: for i5=1:imgsize1(1)
: for j5=1:imgsize1(2)
: if i5<=85
: a1=(i5.^2+85.^2).^(1/2);
: b1=(j5.^2+116.^2).^(1/2);
: ab1=(i5.*j5)+(85.*116);
: c1=ab1/a1*b1;
: cita1(i5,j5)=acos(c1);
: if (0.7071 <=cita1(i5,j5)<= 0.0174)
: re1(i5,j5)=1;
: elseif (1 <=cita1(i5,j5)<= 0.7193)
: re1(i5,j5)=2;
: elseif (0.7071 <=cita1(i5,j5)<= 1)
: re1(i5,j5)=3;
: elseif (0 <=cita1(i5,j5)<= 0.6946)
: re1(i5,j5)=4;
: end
: else % ------ 上下区隔 ------
: a2=(i5.^2+86.^2).^(1/2);
: b2=(j5.^2+116.^2).^(1/2);
: ab2=(i5.*j5)+(86.*116);
: c2=ab2/a2*b2;
: cita2(i5,j5)=acos(c2);
: if (-0.7071 <=cita2(i5,j5)<= -0.0174)
: re1(i5,j5)=5;
: elseif (-1 <=cita2(i5,j5)<= -0.7193)
: re1(i5,j5)=6;
: elseif (-0.7071 <=cita2(i5,j5)<= -0.9998)
: re1(i5,j5)=7;
: elseif (0 <=cita2(i5,j5)<= -0.6946)
: re1(i5,j5)=8;
: end
: end
: end
: end
其实我是要做像下图那样
\ | /
\ 1 | 8 /
2 \ | / 7
\ | /
------------
/ | \
3 / | \ 6
/ | \
/ 4 | 5 \
每45度为一个单位去量化到1~8
矩阵大小170*116 所以我才会订中心点为85,58
不知道各位有什麽建议可以比较快速做到这样的方式呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.170.214.206