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

2021-06-26 22:45:47 字數 650 閱讀 7259

50、一道 spss 筆試題求解

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

關鍵點:

1.相鄰兩邊斜率之積等於-1,

2.矩形邊與座標系平行的情況下,斜率無窮大不能用積判斷。

3.輸入四點可能不按順序,需要對四點排序。

解答:

是否為矩形有兩種情況,如圖

演算法步驟:

1.首先,對這四個點按照x座標從小到大排序,設這四個點分別為a、b、c、d。

2. 如果a.x == b.x,即如果是矩形,則與座標軸平行。

即要求c.x == d.x&&( ( a.y == c.y && b.y == d.y ) || ( a.y == d.y && b.y== c.y ) )

3. 如果a.x != b.x,則計算四條邊的斜率kab、kac、kdb、kdc。

如果是矩形,則有三個內角都為90度,求三個內角相乘為-1; 

即要求 kab*kac== -1 && kdb*kdc == -1 && kac*kdc == -1.

計算OBB四個頂點的座標

obb 的結構如下 obb 的中心 public var center vbvector obb 的x軸 public var x vbvector obb 的y軸 public var y vbvector 半寬,相對於obb的座標系 public var halfwidth number 半高,...

事物的四個特性和四個隔離級別

事物是一條或者多條sql語句組成的執行序列,這個序列中的所有語句都屬於同乙個工作單元,要麼同時完成,其中如果有乙個失敗,則其他操作都要回滾。事物是乙個不可分割的資料庫邏輯工作單位,要麼全部完成,要不失敗回滾。事務執行的結果必須使資料庫從乙個一致性狀態變到另乙個一致性狀態。乙個事物的執行不能被別的併發...

mysql事務四個特性 事務的四個特性

事務的四個特性 1.原子性 atomicity 1.1什麼是原子性 一般來說,原子是指不能分解成小部分的東西。這個詞在計算的不同分支中意味著相似但又微妙不同的東西。例如,在多執行緒程式設計中,如果乙個執行緒執行乙個原子操作,這意味著另乙個執行緒無法看到該操作的一半結果。系統只能處於操作之前或操作之後...