Re: [問題] 如何檢查夾角內有特定物體

看板MATLAB作者 (Tremendo!)時間13年前 (2012/05/07 11:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
pt2 / / / / / o ptN / / pt0 ------------------ pt1 判斷ptN有沒有在pt1-pt0和pt2-pt0的夾角內 function test pt0=[0 0] ; % 圓心點 pt1=[2 -1] ; % 第一個邊界 pt2=[1 5] ; % 第二個邊界 ptN=[2, 0] ; % 你可以測試這三個ptN點 % ptN=[2, 100] ; % ptN=[2,-100] ; tf=isinangle(pt0,pt1,pt2,ptN) ; % 如果有在範圍內 tf=1 % 如果沒有 tf=0 figure % 畫在圖上看 hold on plot([pt0(1) pt1(1)],[pt0(2) pt1(2)],'b-') plot([pt0(1) pt2(1)],[pt0(2) pt2(2)],'b-') plot([pt0(1) ptN(1)],[pt0(2) ptN(2)],'r-') title(num2str(tf)) function tf=isinangle(pt0,pt1,pt2,ptN) v1=[pt1-pt0 0] ; v2=[pt2-pt0 0] ; v3=[ptN-pt0 0] ; % 利用v1 v2 v3的旋轉方向來判斷v3是不是夾在v1 v2之間 if isequal(sign(dot(cross(v1,v2),[0 0 1])),... sign(dot(cross(v1,v3),[0 0 1])),... sign(dot(cross(v3,v2),[0 0 1]))) tf=1 ; else tf=0 ; end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.103.220 ※ 編輯: diva 來自: 140.112.103.220 (05/07 11:25) ※ 編輯: diva 來自: 140.112.103.220 (05/07 11:26)
文章代碼(AID): #1Ffq1mdJ (MATLAB)
文章代碼(AID): #1Ffq1mdJ (MATLAB)