我想将一组点移向图形的中心,但我希望距离与到中心的相对距离成反比。因此,例如将 (-2,-3) 处的点移动到 ( -2 - 1/(-2), -3 - 1/(-3) )。
如果我的 x 点和 y 点在列表中,我会对其进行迭代,但当我尝试用它们进行除法时,会导致“除以 0”错误。例如,将 -1/\x 中的 \x 替换为 -8 到 -1/-8,除法就可以完美地完成。
所以我的问题是:如何正确解析 \x 和 \y 进行除法?
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\foreach \x/\y in {-8/2,-8/-4,-6/5,-7/7,-4/-6,-1/5,-3/-2,-3.5/2.5,%
0/-7,.5/8,6/-3,7/2,4/-8,1/-5,3/5,9/7}%
{
\filldraw [white, draw=black, dashed] (\x,\y) circle (.75);
\shadedraw [ball color=red, very thin] ({\x-1/\x},{\y-1/\y}) circle (.5);
}
\end{tikzpicture}
\end{document}
答案1
您的一个\x
s 是0
。TeX 无法除以 0,因此这永远不会起作用。尝试用 eg 替换\x
得到-1/x
结果0
,-1/0
它甚至不会完美地工作!
如果你0.1
用代替0
,它确实能完美地工作:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\foreach \x/\y in {-8/2,-8/-4,-6/5,-7/7,-4/-6,-1/5,-3/-2,-3.5/2.5,%
0.1/-7,.5/8,6/-3,7/2,4/-8,1/-5,3/5,9/7}%
{
\filldraw [white, draw=black, dashed] (\x,\y) circle (.75);
\shadedraw [ball color=red, very thin] ({\x-1/\x},{\y-1/\y}) circle (.5);
}
\end{tikzpicture}
\end{document}