//半平面交(返回半平面交點的個數)
//點p在有向直線l的左邊
bool onleft(line l, point p)
//二直線交點。假定交點唯一存在
point getintersection(line a, line b)
int halfplaneintersection(line* l, int n, point* poly)
if(first < last) p[last-1] = getintersection(q[last-1], q[last]);
}while(first < last && !onleft(q[first], p[last-1])) last--;
//刪除無用平面(*)
if(last - first <= 1) return 0;//空集(**)
p[last] = getintersection(q[last], q[first]);//計算首尾兩個半平面的交點
//從deque複製到輸出中
int m = 0;
for(int i = first; i <= last; i++) poly[m++] = p[i];
return m;
}
poj 2451 半平面求交
半平面求交,按著zzy 裡的方法對著寫就可以了,這題資料還是比較厚道的 include include includeusing namespace std define eps 1e 8 const int maxn 20005 int dcmp double k struct point poi...
BZOJ3190 JLOI2013 賽車 半平面交
看了黃學長的 每輛車可以表示成乙個一次函式y kx b 按k 為第一關鍵字,b為第二關鍵字排序,然後維護乙個單調棧就好了,具體的ju dge 函式看 include define bug x cout x x define ll long long define eps 1e 7 using nam...
osg 兩個面求交線
麵用osg matrix 來表示。osg vec3 ptori osg 0,0,0 mat 面的原點 osg vec3 vecx mat.getrotate osg x axis x軸 osg vec3 vecy mat.getrotate osg y axis y軸 要求兩個面的交線,首先要判斷兩...