昨天我看了一个非常有趣的视频,讲的是如何确定圆之间的面积/直径关系。我认为你必须自己看一看才能明白,这到底是怎么回事!以下是链接:Youtube:Epic Circles - Numberphile
所以我尝试用 TikZ 构建整个圆圈(我尝试更深入地研究它,所以我认为这将是一个很好的练习)
显然,我在第一步就失败了:构建四个“接吻”圆圈。这是我尝试的:
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, intersections}
\begin{document}
\begin{tikzpicture}
\pgfmathsetmacro{\Radius}{5}
\tikzset{conline/.style={gray, thin, densely dotted}}
\draw[thick, red, name path=bigcircle] (0,0) coordinate (M) circle (\Radius);
\draw[thick, red, name path=circle1] (0,-0.5*\Radius) coordinate (MU) circle (0.5*\Radius);
\draw[thick, red, name path=circle2] (0,0.5*\Radius) coordinate (MO) circle (0.5*\Radius);
\draw[conline, name path=line] (MO) -- ++(-.7*\Radius,0);
\path[name intersections={of= line and circle2, by=A}];
\draw[radius=2pt] (A) circle;
\draw[conline, name path=line] (A) coordinate (MO1) let \p1= ($(M)-(MO1)$), \n1={veclen(\x1,\y1)} in circle (\n1);
\path[name intersections={of= circle1 and line}];
\draw[radius=2pt] (intersection-2) coordinate (B) circle;
\draw[conline, name path=line] (MU) -- ($(MU)!2!(B)$);
\draw[conline, name path=midline] (M) -- (-\Radius,0);
\path[name intersections={of=line and midline}];
\draw[radius=2pt] (intersection-1) circle;
\draw[thick, red] (intersection-1) coordinate (M1) let \p1=($(M1)-(B)$), \n1={veclen(\x1,\y1)} in circle (\n1);
\end{tikzpicture}
\end{document}
我得到的结果相当令人失望,因为它甚至不起作用(除此之外,多次执行它也太复杂了!):
你知道我该怎么做吗?尤其是以一种可以快速复制给所有其他“接吻”圈的方式?还有一件事:我将不胜感激所有能做到的解决方案不是使用tkz-euclide
。我知道,它可能有一些奇特的功能,但由于我不懂法语,并且想了解我通常所做的事情(而不仅仅是这个例子),所以我想继续使用有更好文档记录的 tikz 函数。
提前致谢!
答案1
修改后的答案。遗憾的是,我并不完全认同你对这个视频的热情,在我看来,它花了很长时间来解释琐碎的事情,而忽略了真正的解释。但这当然只是一种观点。
我从视频中学到的唯一东西是数字序列1/15
,1/23
等等,我只会说明前两个数字。至于从内部接触大圆的圆的半径,它们的半径完全由对称性决定1/2
,等等1/3
。1/6
所以你不需要任何交点。
然后我将利用已知相切圆半径这一事实。由于它们相切,它们的圆心必须远离封闭圆的中心加上已知半径。换句话说,它们的圆心位于封闭圆中心周围稍大一些的圆的交点上。我使用您的conline
样式绘制它们,计算交点,然后绘制并填充圆。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, intersections}
\begin{document}
\begin{tikzpicture}
\pgfmathsetmacro{\Radius}{5}
\tikzset{conline/.style={gray, thin, densely dotted}}
\draw[thick, red, name path=bigcircle] (0,0) coordinate (M) circle (\Radius);
\draw[thick, red, name path=circle1] (0,-0.5*\Radius) coordinate (M1) circle (0.5*\Radius);
\draw[thick, red, name path=circle2] (0,0.5*\Radius) coordinate (M2) circle (0.5*\Radius);
\draw[thick, red, name path=circle3] (-2*\Radius/3,0) coordinate(M3) circle (\Radius/3);
\draw[thick, red, name path=circle4] (M1-|M3) coordinate(M4) circle (\Radius/6);
\draw[thick, red, name path=circle5] (M2-|M3) coordinate(M5) circle (\Radius/6);
% 1/15
\fill[blue!60] (M3) ++ ({(\Radius/3+\Radius/15)*1cm},0) coordinate (M6) circle (\Radius/15);
% 1/23
\draw[conline,name path=concirc1] (M5) circle ({\Radius*(1/6+1/23)});
\draw[conline,name path=concirc2] (M2) circle ({\Radius*(1/2+1/23)});
\fill[name intersections={of=concirc1 and concirc2, by={dummy,M7}},blue!60] (M7) circle (\Radius/23);
\draw[conline,name path=concirc3] (M4) circle ({\Radius*(1/6+1/23)});
\draw[conline,name path=concirc4] (M1) circle ({\Radius*(1/2+1/23)});
\fill[name intersections={of=concirc3 and concirc4, by={M8,dummy}},blue!60] (M8) circle (\Radius/23);
\end{tikzpicture}
\end{document}