我想在视觉上连接两个重叠的圆圈
成为
我已经有了部分圆的方法,但现在我需要知道圆的重叠角有多大,我不知道该怎么做。
有人有想法吗?
最佳答案
Phi= ArcTan[ Sqrt[4 * R^2 - d^2] /d ]
喂!
编辑
对于两个不同的半径:
稍微简化一下:
Phi= ArcTan[Sqrt[-d^4 -(R1^2 - R2^2)^2 + 2*d^2*(R1^2 + R2^2)]/(d^2 +R1^2 -R2^2)]
编辑
如果你想要从另一个圆心看的角度,只需将最后一个等式中的 R1 换成 R2 即可。
这是 Mathematica 中的示例实现:
f[center1_, d_, R1_, R2_] := Module[{Phi, Theta},
Phi= ArcTan[Sqrt[-d^4-(R1^2-R2^2)^2 + 2*d^2*(R1^2 + R2^2)]/(d^2 +R1^2 -R2^2)]
Theta=ArcTan[Sqrt[-d^4-(R1^2-R2^2)^2 + 2*d^2*(R1^2 + R2^2)]/(d^2 -R1^2 +R2^2)]
{Circle[{center1, 0}, R1, {2 Pi - Phi, Phi}],
Circle[{d, 0}, R2, {Pi - Theta, -Pi + Theta}]}
];
Graphics[f[0, 1.5, 1, 1]]
Graphics[f[0, 1.5, 1, 3/4]]
还有……
ImageMultiply[
Binarize@FillingTransform[#],
ImageResize[Import@
"http://i305.photobucket.com/albums/nn235/greeneyedgirlox/blondebabybunny.jpg",
ImageDimensions@#]] &@
Rasterize@Graphics[f[0, 1.5, 1, 1], Background -> Black]
:)
关于c# - 如何加入重叠的圈子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4463933/