判斷點是否包含在任意姿態長方體內部

2021-08-18 10:03:56 字數 491 閱讀 2746

1. 背景

為了能夠快速判斷乙個點是否在3維空間中的任意姿態的長方體中,雖然,對於平行座標平面的長方體(例如平行於oxy平面)的判斷方法非常簡單,但是,想要判斷乙個點是否包含在3維空間中的任意姿態的長方體比較複雜。

2. 判斷原理

如下圖所示,我們其實只需要判斷乙個點是否在3組平行平面的同一側即可以判斷(前/後面,左/右面,上/下面),判斷的方法比較簡單:即利用如圖所示中的與法線的夾角,當乙個點(如圖中點b)在左右面的同一側時,與法線的夾角都是銳角或鈍角;當乙個點(如圖中點a)在左右面的不同側時,與法線的夾角必定乙個為銳角乙個為鈍角;實際上,我們不需要判斷角度,我們只需要判斷余弦值的符號即可,即可以判斷向量的內積的符號即可, 總結如下:

判斷點是否在兩個平行面的同一側 <=> 判斷點與法線的夾角的大小 <=> 判斷余弦值的符號 <=> 判斷向量內積的符號

判斷點是否在任意多邊形內(理論)

判斷點是否在任意多邊形內 判斷方法 一.射線判斷 過目標點做一條直線 兩條反方向的射線 每條射線與多邊形邊的交點數量都是奇數,則點在多邊形內,否則在多邊形外部 二.夾角判斷 以目標點為頂點,與多邊形一條邊的兩個端點 端點分先後順序 組成乙個夾角 計算出的夾角會有正負 所有夾角之和為360度 三.面積...

Shell指令碼中判斷字串是否被包含在內

1 字段 grep 案例 str1 abcdefgh str2 def result echo str1 grep if result then echo 包含 else echo 不包含 fi2.字串運算子 案例 str1 abcdefgh str2 def if str1 str2 then e...

判斷點是否在麵內

public class point return flag 目標點是否在目標邊上邊上 param px0 目標點的經度座標 param py0 目標點的緯度座標 param px1 目標線的起點 終點 經度座標 param py1 目標線的起點 終點 緯度座標 param px2 目標線的終點 起...