Pick定理、歐拉公式和圓的反演
Tags:高級算法
Pick定理
內容
定點都是整點的多邊形,內部整點數為\(innod\),邊界整點數\(ednod\),\(S=innod+\frac{ednod}{2}-1\)
證明
把每個整點近似地看成一個圓,那么多邊形內部的整點所代表的圓全部被算入
多邊形邊界上的圓被算了一半
頂點上被算了\(\sum 半圓-外角\),外角和360度,於是\(-1\)
應用
POJ2954 求格點三角形內部點數
歐拉公式
內容
\(V:vertex\) 頂點
\(E:edge\) 邊
\(F:Flat\) 面
適用於所有多變形(無論維度)
例如一個長方形:\(4\)個點\(4\)條邊,兩個面:里面和外面
應用
\(n\)個點做三維凸包,求增量構造法復雜度。
假設\(n\)個點都在凸包上,那么\(V=n\),每個面有三條邊,每條邊被算了兩次,即\(2E=3F\)
通過上面的公式可以得到\(F=2n-4,E=3n-6\)。
增量構造法的復雜度是面數×點數,所以是\(\cal O(n^2)\)級別
圓的反演變換
內容
反演中心為\(O\),反演半徑為\(R\),若經過\(O\)的直線經過\(P,P'\),且\(OP*OP'=R^2\),則稱\(P\)、\(P'\)關於\(O\)互為反演
性質
- 1.一根過\(O\)的直線的反形是本身
- 2.一根不過\(O\)的直線的反形是一個過\(O\)的圓
- 3.一個過\(O\)的圓的反形是一根不過\(O\)的直線
- 4.一個不過\(O\)的圓的反形是一個和該圓關於\(O\)位似的圓
下面這張圖可以粗略解釋一下有這么個東西:兩種不同顏色的三角形相似,可以證出\(CD\)關於\(E\)的反形為圓
- 5.反演不改變相切關系
應用
1、求平面內與原點四點共圓的三元組個數
Problem Provider:自為風月馬前卒
對所有點反演后求三點共線的三元組即可
2、求經過P點並與兩給定相離圓外切的圓
參考博客:ACdreamer反演教程、水郁圖文、cdsszjj題解、教你尺規畫圖
Problem Provider:HDU4773 Problem of Apollonius
先將兩相離圓關於P反演,然后做反形的公切線,反演回來成為公切圓