尺寸太大错误,数字太小
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}
由于 \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}