TikZ:将点移向中心

TikZ:将点移向中心

我想将一组点移向图形的中心,但我希望距离与到中心的相对距离成反比。因此,例如将 (-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

您的一个\xs 是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}

相关内容