求交点的问题!!

BAGWELLWANG 2007-05-25 10:32:28
我画出了两个圆,怎么求得他们的交点啊??
是要一个点一个点的去比较么?哪位大侠给个代码看看~~~
...全文
277 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huzhangyou 2007-06-01
  • 打赏
  • 举报
回复
楼上的分析很对

数学是程序的灵魂
最近在写一些数学算法库 也发现这个问题
不过使用更加巧妙的方法实现了
james_hunter 2007-05-26
  • 打赏
  • 举报
回复
楼主数学没有学好啊。
先是要判断是否相切,即圆心连线是否大于,等于或小于两圆心半径。
如果不相切(大于),那就没有交点。
如果等于,
设圆心分别为x1,y1和x2,y2.那么交点就是中点即
P((x1+x2)/2,(y1+y2)/2)。
如果小于,那么有两个交点。
设:
斜率k = (y2-y1)/(x2-x1);
过中点且与(x1,y1), (x2,y2)相垂直的线是:
y = k`x + C
k` = 1/k;
所以
y=x/k + C.
带入中点P,得:
C = (y1+y2)/2 - (x1+x2)/2k
所以这条线为
y = x/k + (y1+y2)/2 - (x1+x2)/2k.
然后根据圆心算切点(于这条线距离为半径长的点,利用半径,中点到圆心的距离,可以推算)...
bote_china 2007-05-25
  • 打赏
  • 举报
回复
求出圆心连线长度和连线中点,就可以推算出交点坐标
BAGWELLWANG 2007-05-25
  • 打赏
  • 举报
回复
顶啊!!

111,116

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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