作者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