尺寸太大错误,数字太小

Dimension too large error with small number

由于 \tmp,我得到一个 "Dimension too large" 错误,但我不明白为什么,因为结果不是那么大(大约 1)。

\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-0.10000, xscale=0.10000, inner sep=0pt, outer sep=0pt]

\def\xxpl{834.5599}
\def\yxpl{-46.1934}

\def\xxpr{1567.4944}
\def\yxpr{723.6958}

\def\tmp{(\yxpr-\yxpl)/(\xxpr-\xxpl)}
\draw[black] (0,0) -- ++({10*\tmp},{-1*10});      % Works
\draw[black] (0,0) -- ++({100*\tmp},{-1*100});    % Doesn't work

\end{tikzpicture}

你知道为什么吗?

提前致谢

\def,定义的表达式只是在后续代码中替换。不幸的是,tikz 似乎无法计算复杂的表达式,例如 (\yxpr-\yxpl)/(\xxpr-\xxpl)。您可以使用 \pgfmathsetmacro 而不是 \def:

\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-0.10000, xscale=0.10000, inner sep=0pt, outer sep=0pt]

\def\xxpl{834.5599}
\def\yxpl{-46.1934}

\def\xxpr{1567.4944}
\def\yxpr{723.6958}

\pgfmathsetmacro\tmp{(\yxpr-\yxpl)/(\xxpr-\xxpl)}

%\draw[black] (0,0) -- ++({10*\tmp},{-1*10});      % Works
\draw[black] (0,0) -- ++({100*\tmp},{-1*100});      % Now work!

\end{tikzpicture}