我想将一堆参数图添加(或减去)在一起,如下所示:
\documentclass{report}
\usepackage{tikz}
\newcommand{\myPlota}[1]{
(#1>0?(t<#1?0:1):(t<-#1?-1:0))
}
\newcommand{\myPlotb}[1]{
(#1>0?(t<#1?1:2):(t<-#1?-2:-3))
}
\newcommand{\myGraph}[3]{
\draw [domain=#1:#2] plot[parametric,] function{t,#3};
}
\begin{document}
\begin{tikzpicture}
\myGraph{-1}{4}{\myPlotb{2}-\myPlota{1}}
\end{tikzpicture}
\end{document}
如果我使用以下任一方法,我都会得到正确的答案
\myGraph{-1}{4}{\myPlotb{2}-\myPlota{1}}
或者
\myGraph{-1}{4}{0-\myPlota{1}+\myPlotb{2}}
但是,如果我删除零,也就是说,我只需使用
\myGraph{-1}{4}{-\myPlota{1}+\myPlotb{2}}
然后负号被忽略gnuplot
,我得到了错误的答案。有什么想法吗?
答案1
我认为这是 Gnuplot 中的一个错误。我期望0-(1?5:42)
和-(1?5:42)
都计算为,-5
但在 gnuplot 中却不是这样:
gnuplot 5.4 patchlevel 2
gnuplot> plot[-1:1] [-10:10] 0-(1?5:42) , -(1?5:42)
编辑:使用print
gnuplot 中的函数更简单
gnuplot> print 0-(1?5:42)
-5
gnuplot> print -(1?5:42)
5
gnuplot>
编辑:
我不知道使用 Gnuplot 进行这些非常简单的计算的原因,因此这里有一个 TikZ 解决方案:
\documentclass{report}
\usepackage{tikz}
\newcommand{\myPlota}[1]{
(#1>0?(\t<#1?0:1):(\t<-#1?-1:0))
}
\newcommand{\myPlotb}[1]{
(#1>0?(\t<#1?1:2):(\t<-#1?-2:-3))
}
\newcommand{\myGraph}[3]{
\draw [domain=#1:#2] plot[variable=\t] (\t,{#3});
}
\begin{document}
\begin{tikzpicture}
\myGraph{-1}{4}{0-\myPlota{1}+\myPlotb{2}}
\begin{scope}[yshift=2 cm]
\myGraph{-1}{4}{-\myPlota{1}+\myPlotb{2}}
\end{scope}
\end{tikzpicture}
\end{document}