请问我需要这个图的代码 tikz。
我有此代码,但它不正确:
[![\begin{figure}
\begin{tikzpicture}\[x=1.5cm,y=1.5cm\]
\draw\[thick\] plot\[domain=-100:40,samples=100\] ({3.5*cos(\x)},{1.5*sin(\x)+.3*cos(2*\x)}) node {$Q$};
\foreach \x/\i in {-40/j,-70/i} {
\draw\[thick\] ({2.5*cos(\x)},{1*sin(\x)+.15*cos(2.2*\x)}) circle(.4);
\draw\[thick,dotted\] ({2.5*cos(\x)},{1*sin(\x)+.15*cos(2.2*\x)}) circle(.5);
\draw ({2.5*cos(\x)},{1*sin(\x)+.15*cos(2.2*\x)}) node {$\varphi_{\delta}^{\pm}$};
\draw ({2.5*cos(\x)},{1*sin(\x)+.15*cos(2.2*\x)})++(-.37,.6) node {$U_{\delta}^{\pm}$};
\draw ({2.5*cos(\x)},{1*sin(\x)+.15*cos(2.2*\x)})++(-.1,.2) node {$K_{\delta}^{\pm}$};
\end{tikzpicture}
\caption{The contruction of cut-off functions}\label{Fig4}
\end{figure}][1]][1]
谢谢
答案1
您可以将节点与拟合库一起使用,它会为您完成大部分工作:
\documentclass[border=5pt]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{fit}
\begin{document}
\begin{tikzpicture}[scale=0.6] %this scales the whole image
\node[circle,draw] (+) {$\begin{gathered}k_\delta^+\\\varphi_S^+\end{gathered}$};
\node[fit=(+),draw,dashed,circle,label=above left:$U_S^+$] (U+) {};
\node[circle,draw,right=50pt of +] (-) {$\begin{gathered}k_\delta^-\\\varphi_S^-\end{gathered}$};
\node[fit=(-),draw,dashed,circle,label=above right:$U_S^+$](U-){};
\node[fit=(U+) (U-),ellipse,draw,inner sep=15pt,label=above right:$\varphi$]{};
\end{tikzpicture}
\end{document}
关于评论中的问题:缩放选项可以缩放大多数东西但不是所有的。节点中的许多参数不会受到影响。如果您确实想缩放所有内容(包括文本),则应使用该transform canvas
选项。您可以在当前 tikz 手册的第 25.4 节中找到相关信息,或者您可以查看我对另一个问题的回答这里。
使图表变小的另一种方法是减小尺寸,例如减小节点的最小尺寸、节点的内外间距以及文本大小。