計算幾何練習1

2021-08-02 21:02:49 字數 1512 閱讀 5240

結構體

編寫平面上整點point結構體的預設構造、一般構造、拷貝構造,並過載『=』、『

第一行乙個n,表示上半平面上整點個數。 以下n行,每行兩個整數,用空格隔開,表示乙個點的x座標及y座標。

輸出n行,按排序好的先後順序每行輸出乙個點的兩個整數,用空格隔開。

12

-44 33

87 32

-481 63

65 65

98 12

-885 385

124 2

249 621

54 54

-88 66

128 254

36 197

124 2

98 12

87 32

54 54

65 65

128 254

249 621

36 197

-44 33

-88 66

-885 385

-481 63

n<=100000

座標 -1000000<=x<=1000000

座標 0注意叉積可能會超出int

這題其實是一道綜合題,考察的演算法有計算幾何和結構體的構造與運算子過載。題目的意思已經很明確了,要求我們用結構體儲存每個點的橫座標縱座標值,然後進行極角排序。這裡的y一定是大於等於0的,因為只有這樣才有極角排序的唯一答案。我們可以過載《運算子,計算每兩個點的叉積,然後直接呼叫stl庫里的sort函式對這些點進行排序,最終就可以得到答案。

ac**:

#include

#include

#include

#include

#include

using

namespace std;

struct

node

node

(int a,

int b)

node

(const

node

&p1)

node

operator=(

const

node

&a)}

;long

long

operator

*(const node & a,

const node & b)

bool

operator

const

node

&a,const

node

&b)return0;

}int

main

()sort

(s0,s0+n);

for(

int i=

0;ireturn0;

}

ac截圖:

計算幾何練習4

直線與直線相交 給出兩條直線 每條直線給出其上兩個點 要求判斷出這兩條直線的關係 平行,同線或相交。如果相交還要求出交點座標。第一行乙個數t,表示t組資料 每組資料輸入一行,8個數,分別表示ax,ay,bx,by,cx,cy,dx,dy,四個點的橫縱座標,其中前兩個點表示一條直線,後兩個點表示另一條...

計算幾何基礎入門(1)

平面最接近點對 二維凸包 最小覆蓋圓 模板 首先要知道兩個基礎知識 叉積與基礎運算子過載 二維叉積可以用來判斷點與點的位置關係與面積 三維叉積可算平面的法向量 這些模板都是二維的 我想想看能不能化為三維的題 空間最小點對 三維凸包 最小覆蓋球 例題 p4894 p3744 p2785 平面最接近點對...

計算幾何與計算幾何與

博主這裡曾經學過計算幾何 下文簡稱jj 所以沒有證明或者說明某些演算法,不適合初學者食用 用一道例題及黃學長的 來理解 黃學長 include include include include include include include include include include define...