chyanog 发表于 2018-8-1 21:03:36

三圆两两相交,求公共部分面积

三个圆的半径分别为r1, r2, r3,三个圆心距分别为d1, d2, d3,如何用r1,r2,r3,d1,d2,d3表示它们重叠部分的面积?
三圆相交有多种情况,可以先考虑这种


相关链接
两个圆的情况,http://mathworld.wolfram.com/Circle-CircleIntersection.html
http://mathworld.wolfram.com/images/equations/Circle-CircleIntersection/Inline41.gif

这个论文里的方法应该是要先计算三段弦长,感觉这种方法不算简便
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.507.1195&rep=rep1&type=pdf


补充内容 (2018-8-3 10:54):
为了更清晰起见,约定圆1和圆2的圆心距为d1, 圆2和圆3的圆心距为d2, 圆3和圆1的圆心距为d3

mathematica 发表于 2018-8-2 08:51:11

计算三个弦长是最简单的办法了,不要挑剔了!
解析解估计是没有的

chyanog 发表于 2018-8-2 14:42:26

本帖最后由 chyanog 于 2018-8-2 16:02 编辑

https://bbs.emath.ac.cn/forum.php?mod=attachment&aid=ODMwMXw2ZGYzY2NkOHwxNTMzMTkxODgwfDI3Nzl8MTU0ODI%3D&noupdate=yes
对于这种情况,我计算的一个比较简洁的式子,几何意义很明显
$\frac{1}{4} \left(\sqrt{d_1+d_2-d_3} \sqrt{d_1-d_2+d_3} \sqrt{-d_1+d_2+d_3} \sqrt{d_1+d_2+d_3}-\sqrt{d_1+r_1-r_2} \sqrt{d_1-r_1+r_2} \sqrt{-d_1+r_1+r_2} \sqrt{d_1+r_1+r_2}-\sqrt{d_2+r_2-r_3} \sqrt{d_2-r_2+r_3} \sqrt{-d_2+r_2+r_3} \sqrt{d_2+r_2+r_3}-\sqrt{d_3+r_1-r_3} \sqrt{d_3-r_1+r_3} \sqrt{-d_3+r_1+r_3} \sqrt{d_3+r_1+r_3}\right)+\frac{1}{2} r_1^2 \left(-\cos ^{-1}\left(\frac{d_1^2-d_2^2+d_3^2}{2 d_1 d_3}\right)+\cos ^{-1}\left(\frac{d_1^2+r_1^2-r_2^2}{2 d_1 r_1}\right)+\cos ^{-1}\left(\frac{d_3^2+r_1^2-r_3^2}{2 d_3 r_1}\right)\right)+\frac{1}{2} r_2^2 \left(-\cos ^{-1}\left(\frac{d_1^2+d_2^2-d_3^2}{2 d_1 d_2}\right)+\cos ^{-1}\left(\frac{d_1^2-r_1^2+r_2^2}{2 d_1 r_2}\right)+\cos ^{-1}\left(\frac{d_2^2+r_2^2-r_3^2}{2 d_2 r_2}\right)\right)+\frac{1}{2} r_3^2 \left(-\cos ^{-1}\left(\frac{-d_1^2+d_2^2+d_3^2}{2 d_2 d_3}\right)+\cos ^{-1}\left(\frac{d_3^2-r_1^2+r_3^2}{2 d_3 r_3}\right)+\cos ^{-1}\left(\frac{d_2^2-r_2^2+r_3^2}{2 d_2 r_3}\right)\right)$

Mathematica检验代码
Clear["`*"];

(*用数值积分计算面积*)
s1[{{{x1_,y1_},r1_},{{x2_,y2_},r2_},{{x3_,y3_},r3_}}]:=
NIntegrate,{x,-∞,∞},{y,-∞,∞}];

(*已知三边长计算三角形面积*)
A:=
1/4 Sqrt Sqrt Sqrt[-a+b+c] Sqrt;

A2:=
1/2 r1^2 (ArcCos[(d1^2+r1^2-r2^2)/(2 d1 r1)]+ArcCos[(d3^2+r1^2-r3^2)/(2 d3 r1)]-ArcCos[(d1^2+d3^2-d2^2)/(2 d1 d3)]);

s2[{{{x1_,y1_},r1_},{{x2_,y2_},r2_},{{x3_,y3_},r3_}}]:=
With[{d1=Norm[{x1,y1}-{x2,y2}], d2=Norm[{x2,y2}-{x3,y3}], d3=Norm[{x3,y3}-{x1,y1}]},
    A - A - A - A + A2 + A2 + A2];

(*画图*)
graph[{{{x1_,y1_},r1_},{{x2_,y2_},r2_},{{x3_,y3_},r3_}}]:=
Show,Disk[{x2,y2},r2],Disk[{x3,y3},r3]},0.01]],
    Graphics[{Circle[{x1,y1},r1],Circle[{x2,y2},r2],Circle[{x3,y3},r3]}],ImageSize->Tiny];

(*测试*)
Table/2,-1/2}+RandomReal,RandomReal[{1,3}]},{{0,1}+RandomReal,RandomReal[{1,2}]},{{-Sqrt/2,-1/2}+RandomReal,RandomReal[{1,2}]}};{graph,s1,s2},10]

TSC999 发表于 2018-8-3 07:19:42

圆心间的距离写成 \( d_{12}, d_{13},d_{23}\)似乎更好,这样清楚,公式不用解释、都看得懂。

mathematica 发表于 2018-8-3 10:21:50

不如你去求两个球相交的体积,或者三个球相交的体积!

西瓜 发表于 2020-12-21 21:42:44

TSC999 发表于 2018-8-3 07:19
圆心间的距离写成 \( d_{12}, d_{13},d_{23}\)似乎更好,这样清楚,公式不用解释、都看得懂。

你好,想问一下,d1\d2\d3 与d12\d13\d23是怎样对应的?麻烦了

补充内容 (2020-12-22 08:31):
看到对应关系了,谢谢

creasson 发表于 2020-12-22 22:30:20



感谢西瓜把这个很有意思的题目翻出来,对于我正在完善的复向量方法是个很好的素材。

我就不重新码字了,直接粘贴一下过程。


这个关系我尚未验算,不过就过程来看,如果相交部分$DEF$ 在三角形$ABC$中时,大概无误。

再贴一下两圆相交的情形,这个是没问题的。



楚丹逸 发表于 2022-7-19 21:48:02

chyanog 发表于 2018-8-2 14:42
对于这种情况,我计算的一个比较简洁的式子,几何意义很明显
$\frac{1}{4} \left(\sqrt{d_1+d_2-d_3} \s ...

请问是基于什么思路去求解的呢?没有看明白您公式中含义,可以解答一下吗
页: [1]
查看完整版本: 三圆两两相交,求公共部分面积