圆冥定理

从圆外一点引圆的两条割线,这一点到每条割线与圆交点的距离的积相
图1.

从圆外一点P引两条割线与圆分别交于C,B,D,E,则有 PC·PB=PD·PE。如图1所示。(PA是切线)
割线定理为圆幂定理之一(切割线定理推论),其他二圆冥定理_第1张图片为切割线定理和相交弦定理
PCPB=PDPE;
坐标表示形式:
o(x0,y0);p(x1,y1)
pbpc=(x0-x1)(x0-x1)+(y0-y1)(y0-y1)-rr;

证明

如图2,直线PB和PE是自点P引的⊙O的两条割线,则PC·PB=PD·PE。

图2

证明:连接CE、DB,
∵∠E和∠B都对弧CD,
∴由圆周角定理,得 ∠E=∠B。
又∵∠EPC=∠BPD,
∴△PCE∽△PDB,
∴PC:PD=PE:PB, 也就是PC·PB=PD·PE。
圆冥定理_第2张图片
比较
割线定理与相交弦定理,切割线定理通称为圆幂定理。例如
链接:https://ac.nowcoder.com/acm/contest/553/A
来源:牛客网

Chino的数学很差,因此Cocoa非常担心。这一天,Cocoa准备教Chino学习圆与直线的位置关系。
众所周知,直线和圆有三种位置关系:相离、相切、相割,主要根据圆心到直线的距离来判定。 现在我们来看看作业吧:
圆冥定理_第3张图片

是以整点为圆心、正整数为半径的圆,整点分别是圆外一点以及轴上的一点,形成一条圆的割线(也就是和圆有两个交点)。现在Cocoa想要知道,的值是多少?
题目对于Chino来说太难啦,你能帮一帮Chino吗?


#include
#include
#include
#include
#include
#include
#include
using namespace std;
mapmp;
map::iterator it;
stacksta;
int main() {
 long long x0, y0, r, x1, y1, y2;
 cin >> x0 >> y0 >> r >> x1 >> y1 >> y2;
 cout << (x0 - x1)*(x0 - x1) + (y0 - y1)*(y0 - y1) - r * r << endl;
 
 return 0;
}```

你可能感兴趣的:(圆冥定理)