作者geminicstar (小散)
看板MATLAB
標題[問題]原點不再[0,0] 求夾角
時間Thu Dec 8 19:29:43 2011
如題!!
我現在原點設在[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
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.214.206
1F:推 Gwaewluin:用兩向量內積求夾角 12/08 19:31
2F:→ geminicstar:不管原點不是在[0,0]也可以嗎 12/08 19:44
※ 編輯: geminicstar 來自: 118.170.214.206 (12/08 19:45)
3F:推 evovss48:yes~ 向量只在乎大小方向 可寫個function 12/08 21:53
4F:→ evovss48:theta=acosd(dot(A,B)/norm(A)/norm(B)); 12/08 21:54
5F:推 evovss48:用雙for 第一個for的向量A=(元素-85) 第二的B=(元素-58) 12/08 21:58
6F:推 evovss48:拍謝 應該是A=一for元素-(85,58) B=二for元素-(85,58) 12/08 22:07
7F:推 jatj:把原點移到0不就好了... 12/09 15:00
8F:→ geminicstar:matlab (0,0)在左上角~還是有方法可以做到? 12/09 19:18
9F:推 alamabarry:平移 12/10 13:04
10F:→ geminicstar:平移會出現負呢~ 12/10 20:09
11F:推 alamabarry:那是你算的問題~~先拿支筆算算看 弄清楚演算法吧 12/11 00:14
12F:→ geminicstar:不好意思!還是不太懂~可以跟我講比較詳細的描述嗎? 12/11 17:04