在 Latex 中绘制 3 个圆圈(图)

在 Latex 中绘制 3 个圆圈(图)

我对乳胶中的图表还比较陌生。

基本上我想画一个如下图所示的图表。它不完全一样,但围绕该内容。

在此处输入图片描述

\usepackage{tikz}
\begin{tikzpicture}

\draw (2,2) circle (3cm);

\end{tikzpicture}

在此处输入链接描述

答案1

这些都不难,而且大多数事情已经在某个地方完成了。所以你需要做的就是谷歌搜索,把这里和那里的碎片拼凑在一起。环形阴影来自这里fancy arrow来自这里其余部分来自 pgf 手册。

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{decorations.pathreplacing,calc} 
\makeatletter%https://tex.stackexchange.com/a/82432
\pgfdeclareradialshading[tikz@ball]{ring}{\pgfpoint{0cm}{0cm}}%
{rgb(0cm)=(1,1,1);
rgb(0.719cm)=(1,1,1);
rgb(0.72cm)=(1,1,1);
color(0.9cm)=(tikz@ball!60)}
\tikzoption{ring color}{\pgfutil@colorlet{tikz@ball}{#1}\def\tikz@shading{ring}\tikz@addmode{\tikz@mode@shadetrue}}
\makeatother
\begin{document}
\begin{tikzpicture}[fancy arrow/.style={decorate,decoration={ % https://tex.stackexchange.com/a/500018
 show path construction, 
 curveto code={ 
 \draw[top color=blue!30,bottom color=blue] 
 let \p1=($(\tikzinputsegmentsupporta)-(\tikzinputsegmentfirst)$) in 
 [/utils/exec=\pgfmathsetmacro{\mysign}{sign(\x1)}] 
 ([yshift=-3.5pt]\tikzinputsegmentfirst) .. controls 
 ([yshift=-3.5pt]\tikzinputsegmentsupporta) and ([yshift=-3.5pt]\tikzinputsegmentsupportb) 
 ..([yshift=-3.5pt,xshift=\mysign*3pt]\tikzinputsegmentlast) 
 -- ([yshift=-3.5pt,xshift=\mysign*3.5pt]\tikzinputsegmentlast) 
 -- ([yshift=-5.5pt,xshift=\mysign*3.5pt]\tikzinputsegmentlast) 
 -- (\tikzinputsegmentlast) 
 -- ([yshift=5.5pt,xshift=\mysign*3.5pt]\tikzinputsegmentlast) 
 -- ([yshift=3.5pt,xshift=\mysign*3.5pt]\tikzinputsegmentlast) 
 .. controls 
 ([yshift=3.5pt]\tikzinputsegmentsupportb) and ([yshift=3.5pt]\tikzinputsegmentsupporta) 
 .. ([yshift=3.5pt]\tikzinputsegmentfirst) -- cycle;}}},
 pics/fancy circle/.style={code={
 \path[even odd rule,fill=#1!60,path picture={
 \draw[line width=6mm,#1!20] ([yshift=3mm]path picture bounding box.west)
 to[out=-20,in=-120] ([xshift=5mm]path picture bounding box.north);
 }]  
 circle[radius=\pgfkeysvalueof{/tikz/fancy circle/radius}] 
 circle[radius=0.8*\pgfkeysvalueof{/tikz/fancy circle/radius}];
 \path[even odd rule,ring color=#1] 
  circle[radius=0.8*\pgfkeysvalueof{/tikz/fancy circle/radius}]
  circle[radius=0.8*\pgfkeysvalueof{/tikz/fancy circle/radius}-1mm];}},
 fancy circle/radius/.initial=1.55cm,
 pics/arr/.style={code={\draw[#1,top color=#1!20,bottom color=#1]
 (45:0.5) -- ++ (0.3,0) -- ++ (-45:0.5) -- ++(-135:0.5) --++ (-0.3,0)
 -- ++ (45:0.5) -- cycle;}}] 
%
 \path(-4,0) pic{fancy circle=blue} node[font=\large\sffamily]{AAA} 
  (-2.7,0) pic{arr=blue}
  (0,0) pic{fancy circle=purple} node[font=\sffamily]{Transformation} 
  (1.3,0) pic{arr=purple}
  (4,0) pic{fancy circle=orange} node[font=\large\sffamily]{AAA} ;
 \path (0,-2.5) node[top color=white,bottom color=green!30,rounded
  corners=3pt,draw=green!40,font=\sffamily\Large,minimum height=1cm,
  minimum width=2cm](H) {HUMAN};
 \draw[fancy arrow] (H.east) to[out=0,in=0,looseness=1.5]++(0,1);
 \draw[fancy arrow] ([yshift=1cm]H.west)
  to[out=180,in=180,looseness=1.5] (H.west);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容