我需要一些关于如何绘制这个图形的提示

我需要一些关于如何绘制这个图形的提示

这是我希望在 Tikz 中绘制的图形。 在此处输入图片描述

我需要绘制 4 个组件。

  1. 两个类似香蕉的物体彼此面对。
  2. 两条具有一定曲率的曲线连接两个香蕉状物体
  3. 一个圆圈,放置在某个位置。
  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

  • 箭头是使用节点的锚点绘制的。

相关内容