这是我希望在 Tikz 中绘制的图形。
我需要绘制 4 个组件。
- 两个类似香蕉的物体彼此面对。
- 两条具有一定曲率的曲线连接两个香蕉状物体
- 一个圆圈,放置在某个位置。
- 连接圆的底部并穿过其中一条曲线的箭头。
我可以自己弄清楚如何绘制 3 和 4,但由于我不知道如何设置 1,所以坐标并不完美。但我真的需要一些关于如何绘制 1(尤其是)和 2 的帮助或提示。非常感谢。
答案1
更新后的版本
我刚刚注意到香蕉的馅料是用不同深浅的灰色做成的:
代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[>=latex]
\coordinate (A) at (0,0) ;
\coordinate (B) at (0,-5) ;
\coordinate (C) at (4,0) ;
\coordinate (D) at (4,-5) ;
\filldraw[top color=gray!20,bottom color=gray!70,middle color=gray!30]
% the banana to the left
(A) to[out=-110,in=110]
coordinate[pos=0.07] (auxlu)
coordinate[pos=0.93] (auxll)
(B) to[out=140,in=-140]
(A);
% the banana to the right
\filldraw[top color=gray!70,bottom color=gray!20,middle color=gray!30] (C) to[out=-70,in=70]
coordinate[pos=0.07] (auxru)
coordinate[pos=0.93] (auxrl)
(D) to[out=40,in=-40]
(C);
\draw[thick,looseness=1.3]
% the upper curve
(auxlu) to[bend right] (auxru)
% the lower curve
(auxll) to[bend left] (auxrl);
% the circle
\node[circle,draw=green!60!black,inner sep=0.5cm]
at (1.2,-2.5) (circle) {};
% the arrow
\draw[<->,thick]
(circle.south) -- ++(-45:3cm);
\end{tikzpicture}
\end{document}
初始版本
代码(带解释性注释):
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[>=latex]
\coordinate (A) at (0,0) ;
\coordinate (B) at (0,-5) ;
\coordinate (C) at (4,0) ;
\coordinate (D) at (4,-5) ;
\filldraw[fill=gray!20]
% the banana to the left
(A) to[out=-100,in=100]
coordinate[pos=0.05] (auxlu)
coordinate[pos=0.95] (auxll)
(B) to[out=120,in=-120]
(A)
% the banana to the right
(C) to[out=-80,in=80]
coordinate[pos=0.05] (auxru)
coordinate[pos=0.95] (auxrl)
(D) to[out=60,in=-60]
(C);
% the upper curve
\draw
(auxlu) to[bend right] (auxru);
% the lower curve
\draw
(auxll) to[bend left] (auxrl);
% the circle
\node[circle,draw=green,inner sep=0.5cm]
at (1.8,-2.5) (circle) {};
% the arrow
\draw[<->]
(circle.south) -- ++(-45:3cm);
\end{tikzpicture}
\end{document}
评论
对于“香蕉”形图形,
out=
操作in=
。对于曲线路径,也可以使用
bend
操作(out=
,操作)。in=
通过在“香蕉”内侧路径上放置一些辅助坐标,并借助 绘制弯曲曲线
pos=
。圆形是一個
\node
形狀circle
。箭头是使用节点的锚点绘制的。