#判斷四個點是否共平面:
#計算結果 = 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座標從小...