我正在尝试沿着一条奇特的路径产生一条光子线。我制作了下图:
使用代码:
\documentclass[crop,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows}
\usepackage[compat=1.0.0]{tikz-feynman}
\usetikzlibrary{decorations.pathreplacing,angles,quotes,decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}[x=1cm,y=1cm,
photon/.style={decorate,decoration={snake,post length=2mm,pre length=2mm, segment length=1.0mm, amplitude=0.5mm,}}
]
\draw [<->,>=stealth',black,photon] plot [smooth] coordinates {(0,0) (0.5,0.5) (3,0)};
\end{tikzpicture}
\end{document}
奇怪的是,当我简单地用不同的坐标替换情节线时,例如
\draw [<->,>=stealth',black,photon] plot [smooth] coordinates {(0,0) (1,-1) (2,-1) (3,0)};
我收到错误
尺寸太大。
指向那条线。
我只能猜测,这可能是因为光子摆动和曲率一起产生了奇怪的尺寸。有什么建议可以解决这个问题吗?
答案1
这是装饰的常见问题。根据我的经验,使用该库绘制平滑曲线dimension too large
时,出错的几率会大大降低。hobby
\documentclass[crop,tikz]{standalone}
\usetikzlibrary{arrows,decorations.pathmorphing,hobby}
\begin{document}
\begin{tikzpicture}[x=1cm,y=1cm,
photon/.style={decorate,decoration={snake,post length=2mm,pre length=2mm, segment length=1.0mm, amplitude=0.5mm,}}
]
\draw [<->,>=stealth',black,photon, use Hobby shortcut]
(0,0) .. (1,-1) .. (2,-1) .. (3,0);
% \draw [<->,>=stealth',black,photon] plot [smooth] coordinates {(0,0) (0.5,0.5) (3,0)};
\end{tikzpicture}
\end{document}
该路径通常看起来与实际获得的路径有些不同,plot[smooth] {<coordinates>}
但它是一种有效的平滑插值(在某种意义上甚至是更好的插值)。