CSU 1778 多邊形的公共部分(計算幾何)

2021-09-21 05:51:25 字數 1071 閱讀 4859

給定兩個簡單多邊形,你的任務是判斷二者是否有面積非空的公共部分。如下圖中的兩個

矩形只有一條公共線段,沒有公共面積。

在本題中,簡單多邊形是指不自交(也不會接觸自身)、不含重複頂點並且相鄰邊不共線的多 邊形。

注意:本題並不複雜,但有很多看上去正確的演算法實際上暗藏缺陷,請仔細考慮各種情況。

input

輸入包含不超過 100 組資料。每組資料報含兩行,每個多邊形佔一行。多邊形的格式是:第一 個整數 n 表示頂點的個數 (3<=n<=100),接下來是 n 對整數(x,y) (-1000<=x,y<=1000),即多邊 形的各個頂點,按照逆時針順序排列。

output

對於每組資料,如果有非空的公共部分,輸出"yes",否則輸出"no"。

sample input

4 0 0 2 0 2 2 0 2

4 2 0 4 0 4 2 2 2

4 0 0 2 0 2 2 0 2

4 1 0 3 0 3 2 1 2

sample output

case 1: no

case 2: yes

思路:判斷點在多邊形內

ac**:

#include#define ll long long

#define max 105

const ll mod=1e9+7;

const double pi=acos(-1);

using namespace std;

struct nodea[max],b[max];

double compute(double x1,double y1,double x2,double y2)

bool judge(node a,int len,int x,int y)

return fabs(angle-2*pi)<1e-6;//和為2π就在多邊形內

}int main()

if(!flag)

}printf(!flag?"case %d: no\n":"case %d: yes\n",t);

}return 0;

}

NBUT 1640多邊形的公共部分 多邊形面積交

description 給定兩個簡單多邊形,你的任務是判斷二者是否有面積非空的公共部分。如下圖,a 中的兩個矩形只有一條公共線段,沒有公共面積。在本題中,簡單多邊形是指不自交 也不會接觸自身 不含重複頂點並且相鄰邊不共線的多 邊形。注意 本題並不複雜,但有很多看上去正確的演算法實際上暗藏缺陷,請仔細...

多邊形與多邊形 位置關係的判斷

c 判斷點的位置方法一 public intisleft point p0,point p1,point p2 private boolpointinfences point pnt1,point fencepnts else if wn 0 return false else return tru...

多邊形的面積

1 三角形面積 xy平面內,有三角形 123,如下圖所示 1 借助向量叉積和點積,這個三角形的面積公式非常簡單 這個面積是有符號的 1 2 3逆時針排列,則面積為正 1 2 3順時針排列,則面積為負。這是對右手系的總結,如果從背面看這個座標系就成了左手系。在左手系下,面積的正負情況正好相反。所以,關...