Re: [問題]原點不再[0,0] 求夾角

看板MATLAB作者 (小散)時間14年前 (2011/12/09 19:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《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
文章代碼(AID): #1EuUxQaI (MATLAB)
文章代碼(AID): #1EuUxQaI (MATLAB)