从/到先前定义的交叉点绘制 pgfplot

从/到先前定义的交叉点绘制 pgfplot

我正在尝试使用 绘制一个图pgfplots,其中起始和结束坐标是我之前在同一个 中计算的交点tikzpicture。我首先定义路径和交点,但是当我在命令中输入交点的名称作为坐标时addplot,文档无法编译。错误消息如下:

pdflatex> ! Package PGF Math Error: Unknown function `t' (in 't-1)(-10.869411').

显然我做错了。有人知道如何在addplot命令中使用先前定义的交点吗?

以下是我尝试编译的代码的本质:

\documentclass[11pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz,pgfplots}
    \usetikzlibrary{intersections}
\pgfplotsset{compat=newest}
\begin{document}

    \begin{tikzpicture}

         \begin{axis}[view={0}{90}, width=10cm, height=7cm, scale only axis, axis equal,
                      xmin=-17.936700408998, xmax=5.89970040899796, ymin=12.5, ymax=31.3,]

             \path[name path=topslant] (axis cs: -0.529628,27.8830164982243) -- (axis cs: -0.445369,28.2419383436497);
             \path[name path=top] (axis cs: 0,31.272) -- (axis cs: -00.15,28) -- (axis cs: -1,28.12);
             \path[name intersections={of=topslant and top, name=t}];

             \path[name path=bottomslant] (axis cs: -12.037,12.52) -- (axis cs: -10.869411,13.6420106655631);
             \path[name path=corner] (axis cs: -12,12.07) -- (axis cs: -11.133,12.921) -- (axis cs: -11.574,13.3);
             \path[name intersections={of=bottomslant and corner, name=c}];

             \addplot[color=blue, solid]
                 coordinates{
                     (t-1)(-10.869411,13.6420106655631)(-2.756473,22.6522459312844)(-0.529628,27.8830164982243)(c-1)
                 };

        \end{axis}
    \end{tikzpicture}
\end{document}

答案1

\addplot coordinates需要绝对坐标,它不能处理节点引用。

原因是\addplot coordinates与 / 对话定义了轴:它的参数用于计算轴极限,甚至可能变换坐标空间等。它对“t”的轴极限一无所知,也不能对“t”应用任何类型的变换(如对数)。这就是它需要坐标的原因。

另一种方法是使用\draw而不是\addplot并使用axis cs而不是默认坐标系。

相关内容