給定兩個簡單多邊形,你的任務是判斷二者是否有面積非空的公共部分。如下圖中的兩個
矩形只有一條公共線段,沒有公共面積。
在本題中,簡單多邊形是指不自交(也不會接觸自身)、不含重複頂點並且相鄰邊不共線的多 邊形。
注意:本題並不複雜,但有很多看上去正確的演算法實際上暗藏缺陷,請仔細考慮各種情況。
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順時針排列,則面積為負。這是對右手系的總結,如果從背面看這個座標系就成了左手系。在左手系下,面積的正負情況正好相反。所以,關...