
다음 코드를 사용하면 파란색 선이 (0,0)에서 (0.5,0)으로 이동하지 않는 이유를 아는 사람이 있습니까?
\pgfmathresult
나에게는 가로좌표 1 에 조건의 결과 인 0.5를 곱해야 \pgfmathifthenelse
하지만 그렇지 않습니다.
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{positioning}
\usetikzlibrary{calc}
\newcommand{\origin}{
\node (O) at (0,0){$\times$};
\node at (1,0){$\times$};
\node at (O){O};}
\begin{document}
\begin{tikzpicture}
\origin
\pgfmathifthenelse{1}{"0.5*"}{}
\draw[blue] (0,0)--++(\pgfmathresult1,0);
\end{tikzpicture}
\end{document}
답변1
나는 확실히 그러한 사용을 멀리하고 싶지만 여기서 문제는 \pgfmathresult
정의가 그렇게 오래 지속되지 않는다는 것입니다. 따라서 현재 가치를 빠르게 사용해야 합니다. 많은 그리기 명령도 내부적으로 사용하기 때문입니다.
\pgfmathsetmacro\mytemp{ifthenelse(1,"0.5*",)};
\draw[blue] (0,0)--++(\mytemp1,0);
공장. 대신 훨씬 더 직관적이고 확장 문제가 있는 코드가 없습니다.
\pgfmathsetmacro\mytemp{ifthenelse(1,0.5,1)};
\draw[blue] (0,0)--++(\mytemp*1,0);
이것은 또한
\draw[blue] (0,0) --++({ifthenelse(1,0.5,1)*(1cm)},0);