求经过一个点,与一条已知直线和圆相切的圆

stef3390 2010-08-23 02:28:20
已知一条直线,一个圆和一个点,求过这个点与直线和圆相切的圆;已知两圆,过一个点与两圆相切的一个圆。

有没有什么比较好的解法?暂且不考虑内切
...全文
851 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
swimmingfish2004 2010-08-25
  • 打赏
  • 举报
回复
stef3390 2010-08-25
  • 打赏
  • 举报
回复
已知圆O,已知直线L,已知点P,所求圆O‘
搞定了,先把所有对象旋转,让已知直线平行于x轴,再平移,使O的圆心位于原点,这样可以大大减少方程的复杂性。以O'半径加上O半径为半径,O为圆心画圆,这个圆一定与直线L相距O’半径的平行直线(朝圆O方向)交于两点,这两点就是所求圆圆心。

这两个点的坐标可以用含O'半径这个未知数的表达式表示,然后用这两个点分别到点P的距离为O'半径可以得出一个比较复杂的一元方程,解出圆O‘的半径

表达得很乱,这种问题没有图还真难讲
stef3390 2010-08-24
  • 打赏
  • 举报
回复
这个意思我没看明白,r的范围好像不能确定的吧,数学知识不够,很烦恼啊
swimmingfish2004 2010-08-23
  • 打赏
  • 举报
回复
解析解应该可以求的吧,只是比较烦。
要不换个思路,试试用数值计算的思路,比如先确定一下r的范围(可以确定出来的),然后对r折半搜索,如下:
确定r的值,然后可以确定其圆心在一条直线和一个圆的交点上,根据求出的圆和那个圆上的点的位置判断一下r是大了还是小了(没有证明,不知道是不是可以根据点和圆的相互位置判断r的大小)。

仅仅是个思路而已。
liufang8318 2010-08-23
  • 打赏
  • 举报
回复
呵呵,方法很好啊。
SuperLampard 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 stef3390 的回复:]
我求出的是4组解
[/Quote]
杰拉德的头像 没兰帕德帅 O(∩_∩)O哈哈~
stef3390 2010-08-23
  • 打赏
  • 举报
回复
我求出的是4组解
fandh 2010-08-23
  • 打赏
  • 举报
回复
很早以前做过,好像你的答案,每个都是两个解!
具体,记不得了!惭愧!
stef3390 2010-08-23
  • 打赏
  • 举报
回复
谢谢,我就是按照这个方法列出的方程,但是解起来非常非常复杂,字符代替常量用maple根本解不出,代入数值倒是很快就算出来了,我想知道怎么样将这个解法用C++实现
swimmingfish2004 2010-08-23
  • 打赏
  • 举报
回复
解方程组:有以下三个约束可以转化成三个方程。圆的参数为(x,y,r)分别为圆心的坐标和半径。
1:点的坐标带入圆方程即得到一个方程,这是个非线性方程。
2:圆的圆心离直线的距离为半径。这是一个线性方程。
3:圆心到已知圆的圆心的距离等于半径长度和。这是一个非线性方程。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧