圆的公切线
已知点P(x0,y0)在圆C:(x−x1)2+(y−y1)2=r2外, 求过点P引圆C的两条切线.
设切线的斜率为k(至少有一个斜率存在), 切线方程设为y=k(x−x0)+y0, 则由距离公式
r=1+k2∣k(x1−x0)+y0−y1∣.
化简整理后为关于k的二次函数, 如果只有一个解, 那么另外一条切线是x=x0.
该方法容易想到, 但是解一元二次方程可能计算量会比较大, 因此不太推荐
设切线方程为y=k(x−x0)+y0.
如图所示, tanα=∣PC∣2−r2r,
直线PC的斜率为kPC=x0−x1y0−y1,
则切线斜率可以表示为
k=1−kPCtanαkPC+tanα 或 1+kPCtanαkPC−tanα,
上式若有出现分母为零, 则对应切线为x=x0.
若kPC的分母为零, 则k=±tanα1.
推荐用该方法,
用此法, 必画图!
如何求两个圆
- 圆O1:(x−x1)2+(y−y1)2=r12
- 圆O2:(x−x2)2+(y−y2)2=r22
的公切线?
设公切线方程为y=kx+b, 列出方程组
⎩⎨⎧1+k2∣kx1+b−y1∣=r11+k2∣kx2+b−y2∣=r2
上面两式相除, 然后整理得
r2∣kx1+b−y1∣=r1∣kx2+b−y2∣,
去绝对值有两种情形, 即:
r2(kx1+b−y1)=r1(kx2+b−y2),
或
r2(kx1+b−y1)=−r1(kx2+b−y2),
接下来可以消参, 并回代原方程, 最后求两次一元二次方程, 计算略复杂.
当然有一种办法, 可以通过k与b的关系, 先求出直线的定点. 例如方程r2(kx1+b−y1)=r1(kx2+b−y2), 可化简整理成
k(r2x1−r1x2)+(r2−r1)b=r2y1−r1y2.
因此直线必过定点 (r2−r1r2x1−r1x2,r2−r1r2y1−r1y2).
若r1=r2最好用几何法去做
另外一定点可以根据所谓的同构, 直接写出(原理是只需在式中的所有r1前面加上负号), 另一个定点坐标为 (r2+r1r2x1+r1x2,r2+r1r2y1+r1y2).
求出定点之后, 再根据具体情况求切线:
- 如果定点在其中一个圆内, 则这种情况无解;
- 如果定点在圆上, 则该定点是两圆公切点, 只需考虑
圆的切线问题
, 这种情况恰好有一组解;
- 如果定点在圆外, 只需考虑
圆外一点的切线问题
, 这种情况有两组解.
这种方法有点万能, 并且很容易想到, 但是计算需要一定技巧
计算技巧的核心就是, 两式相除, 得到k与b的关系
不难验证, 过圆 C:(x−a)2+(y−b)2=r2上的点M(a+rcost,b+rsint)的切线方程为
l:xcost+ysint−(acost+bsint+r)=0
只需验证:
- 点M在切线l上;
- l⊥MC. 也就是要验证 l 的一个法向量(cost,sint) 与向量MC 平行.
根据圆上一点切线的结论, 可以设公切线为
xcost+ysint−(x1cost+y1sint+r1)=0
或
xcosθ+ysinθ−(x2cosθ+y2sinθ+r2)=0.
点O2(x2,y2)到该公切线的距离等于圆半径r2, 有
r2=∣x2cost+y2sint−(x1cost+y1sint+r1)∣
去绝对值得
(⋆)(x2−x1)cost+(y2−y1)sint=r1±r2
接下来利用辅助角公式
求解(⋆)式. 设R=(x2−x1)2+(y2−y1)2, 因此可令
- x2−x1=Rsinθ
- y2−y1=Rcosθ
于是根据(⋆)式有
Rsin(θ+t)=r1±r2
所以
sin(t)=sin(θ+t−θ)=sin(θ+t)cos(θ)−cos(θ+t)sin(θ)=sin(θ+t)Rx2−x1±1−sin2(θ+t)Ry2−y1
其中sin(θ+t)=Rr1±r2, 因此sin(t)最多可能有四种情况,
得到sin(t)后, 可通过(⋆)式算出cos(t)
该算法计算量少, 且无需麻烦的讨论.
得分情况讨论, 本质上是需要考虑
- 求两内含圆的公切线(0条)
- 求两内切圆的公切线(1条)
- 求两相交圆的公切线(2条)
- 求两外切圆的公切线(3条)
- 求两外离圆的公切线(4条)
只需把两个圆的解析式做差, 也就是公切线为:
l:(x−x1)2+(y−y1)2−(x−x2)2−(y−y2)2=r12−r22,
化简整理得
l:(x2−x1)x+(y2−y1)y=t,
其中t=21[r12−r22+x22+y22−x12−y12].
只需验证:
自行验证
若满足∣r2−r1∣<∣O1O2∣<r1+r2, 则两圆相交. 此时它们有两条公切线, 分别设为l1,l2, 设这两条公切线的交点为P(x0,y0).
(1) 若r1=r2, 则两切线都与直线O1O2平行, 直线O1O2方程为:
(y2−y1)(x−x1)+(x1−x2)(y−y1)=0
设切线方程为
(y2−y1)(x−x1)+(x1−x2)(y−y1)+t=0
则根据平行线距离公式有
r=∣(y1−y2)2+(x1−x2)2∣∣t∣,
于是
t=r∣O1O2∣ 或 −r∣O1O2∣
(2) 若r1=r2, 不妨设(r2>r1)
法一(公切线交点法): 根据向量关系
O1P=r2r1O2P=r2r1(O2O1+O1P),
于是有
O1P=r2−r1r1O2O1
(也可直接三角形相似得到上一步)可解得
⎩⎨⎧x0=x1+r2−r1r1(x1−x2)=r2−r1r2x1−r1x2y0=x1+r2−r1r1(y1−y2)=r2−r1r2y1−r1y2
接下来只需考虑圆外一点求切线的问题, 可参考之前的讨论
法二(辅助圆法):
只给出这种方法的思路, 设公切线方程为y=kx+b
-
先构造辅助圆O3, 它与圆O2同心, 半径为r2−r1.
-
如图, 有O2到虚线距离为r2−r1=1+k2∣k(x2−x1)+y1−y2∣.
-
根据O1到公切线距离有r1=1+k2∣kx1+b−y1∣.
上面两步可依次求出k与b.
法三(斜率法):
这种方法先是先求出斜率, 再根据距离公式算出截距. 这里只给出求斜率的办法. 如图, 设公切线斜率为k, 两圆心所在直线斜率为k0, 几何关系可以得到
tanα=∣O1O2∣2−(r2−r1)2r2−r1
于是, 根据正切公式
k=1∓k0tanαk0±tanα
若满足∣O1O2∣=r1+r2, 则两圆外切. 公切线共有三条
其中有两条切线的求解方法同两相交圆的公切线
另外一条切线的求解方法同两内切圆的公切线
若满足∣O1O2∣>r1+r2, 则两圆相离. 公切线有四条.
求解思路同两相交圆的公切线, 不同的是, 需要分两种情况讨论
两对切线的交点坐标分别为
⎩⎨⎧x0=r2−r1r2x1−r1x2,y0=r2−r1r2y1−r1y2,⎩⎨⎧x0=r2+r1r2x1+r1x2,y0=r2+r1r2y1+r1y2.
辅助圆也对应需要做两个, 圆心都是O2, 半径分别是r2−r1或r2+r1
自己动手丰衣足食, 把下面代码一行行输入到下面链接输入框里
r1=1
r2=3
A=(2,2)
B=(5,4)
c1:circle(A,r1)
c2:circle(B,r2)
P = (r2*A-r1*B)/(r2-r1)
Tangent(P,c1)
Q = (r2*A+r1*B)/(r2+r1)
Tangent(Q,c1)
# 对于两圆相切的情形,可加上下面代码
tg:LeftSide(c1)-LeftSide(c2)=RightSide(c1)-RightSide(c2)
(22年数1)写出与圆x2+y2=1和(x−3)2+(y−4)2=16都相切的一条直线的方程
在第一个圆上找一点(cost,sint), 于是可设公切线为
xcost+ysint=1
根据点线距等于半径: ∣3cost+4sint−1∣=4
如果在第二个圆上找一点(3+4cost,4+4sint), 则公切线为:
xcost+ysint=3cost+4sint+4
根据点线距等于半径: ∣3cost+4sint+4∣=1
后面求解过程是一样的
(1) 当3cost+4sint−1=4时, 即
53cost+54sint=1
令sinθ=53, cosθ=54,
则sin(t+θ)=1, cos(t+θ)=0, 于是
sint=sin(t+θ−θ)=sin(t+θ)cosθ−cos(t+θ)sinθ=cosθ=54
从而cost=35(1−54sint)=53
这种计算方式可以优化, 这样写只是为了体现一般性
因此切线方程为: 53x+54y−1=0
(2) 当3cost+4sint−1=−4时, 即
53cost+54sint=−53
令sinθ=53, cosθ=54,
则sin(t+θ)=−53, cos(t+θ)=±54, 于是
sint=sin(t+θ−θ)=sin(t+θ)cosθ−cos(t+θ)sinθ=−53⋅54±5453=0 或 −2524
- 当sint=0时, 得cost=−1, 公切线: x+1=0
- 当sint=−2524时, 得cost=257, 公切线: 257x−2524y−1=0
综上所述, 所有公切线为:
- 53x+54y−1=0
- x+1=0
- 257x−2524y−1=0
写出与圆x2+y2=1和(x−3)2+(y−4)2=16都相切的一条直线的方程
懒得画图, 就用代数法快速推导出公切线上的点,
这种计算没必要额外记公式
设公切线方程为: y=kx+b
根据点线距等于半径, 列两个方程
得∣3k+b−4∣=4∣b∣
(1) 当3k+b−4=4b时, 即3k−3b=4, 整理得−k+b=−34,
因此, 公切线必过点P(−1,−34),
于是tanα=∣OP∣2−r2r=43, 以及 kOP=34
k=1∓kOPtanαkOP±tanα=1∓134±43
- 当k不存在时, 切线方程为:x+1=0
- 当k=247时, 切线方程为: y=247(x+1)−34
对于此题而言, 直接把b=k−34, 代入到 1+k2∣b∣=1中, 反而更简单, 不过这样计算容易遗漏k不存在的情形
(2) 当3k+b−4=−4b时, 即3k+5b=4,整理得53k+b=54,
因此, 公切线必过点(53,54),
不难发现它恰好在第一个圆上,
所以公切线为53x+54y−1=0
综上所述, 所有公切线为:
- 53x+54y−1=0
- x+1=0
- 247x−y−2425=0
-
方程法
(推荐): 根据点线距等于半径, 列两个方程, 核心地方是两个方程相除. 不想画图的话, 推荐使用该方法.
-
三角变换法
(推荐): 通过三角变换直接用一个参数表示出圆方程, 最后通过距离公式得到方程. 不想画图的话, 推荐使用该方法.
-
公切线交点法
(没图不推荐): 先用方程法
或几何法
求出公切线交点, 于是把问题转化为圆外一点切线问题. 不过需要注意同半径的圆这种情况如何去求.
-
辅助圆法
与斜率法
(没图不推荐): 先求出斜率, 再用点线距离公式求截距.