判斷四個點是否共平面,Python實現

2021-10-08 19:47:42 字數 1102 閱讀 5846

#判斷四個點是否共平面:

#計算結果 = 0,就說明是共平面

#由於實際座標並非完全精確,所以只要做到計算結果很接近0,就可以認為是共平面

#這裡假設 -0.15 < 結果 < 0.15,就認為是共平面

#這裡的0.15是經過多次嘗試得到的

@staticmethod

defisfourpointsinsameplane

(p0, p1, p2, p3)

: s1 = point(p1.x - p0.x, p1.y - p0.y, p1.z - p0.z)

s2 = point(p2.x - p0.x, p2.y - p0.y, p2.z - p0.z)

s3 = point(p3.x - p0.x, p3.y - p0.y, p3.z - p0.z)

result = s1.x*s2.y*s3.z+s1.y*s2.z*s3.x+s1.z*s2.x*s3.y-s1.z*s2.y*s3.x-s1.x*s2.z*s3.y-s1.y*s2.x*s3.z

#r2.planeerror是自定義的乙個誤差範圍:0.1

#print(result)

#判斷計算結果是否在誤差範圍內

if mathtool.isinrange(result,

0, r2.planeerror)

:return

true

return

false

#是否在誤差範圍內:這裡的error是在resource中定義的鍵長、鍵角等誤差

#如果a - error <= b <= a + error,則認為a在b的誤差範圍內

#通過數學證明,引數a和b等價,也就是將a和b互換後不影響結果

@staticmethod

defisinrange

(a, b, error)

:if a - error <= b <= a + error:

return

true

else

:return

false

ps: 特別喜歡python的乙個語法: a < b < c,而不是寫成 a < b && b < c。

C 判斷四個點是否構成正方形

判斷方法分為兩步 1.判斷四條邊是否相等 2.判斷是否有乙個角為直角 求解兩點之前距離的函式 double distance int x1,int y1,int x2,int y2 判斷三點連續構成的角是否為直角,第乙個點引數為頂點 bool isrightangle int x1,int y1,i...

C 判斷四個點能否構成正方形

參考部落格 對其進行了修改,思路大致一樣。判斷方法 三個條件同時滿足 1 四條邊相等,2 邊不為0,3 有乙個直角 思路 1 確定點。對點進行排序,固定四個點的序號 注 排序時,按橫座標或者縱座標公升序 降序可以隨便排列組合,都沒有問題。如 bool cmp point a,point b 或者 b...

150 輸入四個點的座標,求證四個點是不是乙個矩形

50 一道 spss 筆試題求解 題目 輸入四個點的座標,求證四個點是不是乙個矩形 關鍵點 1.相鄰兩邊斜率之積等於 1,2.矩形邊與座標系平行的情況下,斜率無窮大不能用積判斷。3.輸入四點可能不按順序,需要對四點排序。解答 是否為矩形有兩種情況,如圖 演算法步驟 1.首先,對這四個點按照x座標從小...