应用负比例因子时“入”(路径)角度出现问题

应用负比例因子时“入”(路径)角度出现问题

尝试将评论转换为完整的答案如何确定 Tikz 中的箭头形状我认为我的解决方案偶然起作用了,并且 MWijnand 在to path库中{x|y}scale有负值时发现了错误的行为。

看一下这个例子:

\documentclass[tikz,border=2mm]{standalone}
\usepackage{bondgraph}          
\usetikzlibrary[petri] 

\begin{document}
\begin{tikzpicture}[thin,>=stealth, every place/.style={draw,thick,minimum size=6mm}]
    \node[place] (pG) {$p_G$};
    \node[place,right=3cm of pG] (pR) {$p_R$};
    \draw[->] (pR) to [out=150, in=30] (pG);
    \begin{scope}[yscale=-1]
    \draw[->,blue] (pR) to [out=150, in=30] (pG);
    \end{scope} 
    \begin{scope}[xscale=-1]
    \draw[->,red] (pR) to [out=150, in=30] (pG);
    \end{scope} 
    \begin{scope}[scale=-1]
    \draw[->,green] (pR) to [out=150, in=30] (pG);
    \end{scope} 
\end{tikzpicture}
\end{document}

及其奇怪的结果。

在此处输入图片描述

我所期望的是,这pR.center是路径的起点,也是pG.center路径的终点。路径的out角度会受到因素的影响scale,绘制的路径将从边界上的相应交叉点开始。正如您在节点周围看到的pR那样,这就是角度所发生的情况。outpR

in但角度(pG节点)不会发生这种情况。in角度将最终锚点固定在 pG.30而不是 ,pG.center正如预期的那样。它还会改变应用比例因子的入射角。

我认为这不对,我会填写错误报告。如果我错了或者您有更好的解决方案,请告诉我们。

答案1

这实际上是它应该如何工作的。inout方向是在当前坐标系中计算的。

\documentclass[tikz,border=2mm]{standalone}
\begin{document}
  \begin{tikzpicture}[thin,>=stealth, place/.style={circle, draw,thick,inner sep=1pt}]
    \node[place] (pG) at (-1.5,0) {.};
    \node[place] (pR) at (1.5,0) {.};

    \draw[->] (pR) to [out=150, in=30] (pG);
    \draw (pR) -- +(150:1) (pG) -- +(30:1);

    \begin{scope}[yscale=-1,blue]
      \draw[->] (pR) to [out=150, in=30] (pG);
      \draw (pR) -- +(150:1) (pG) -- +(30:1);
    \end{scope}

    \begin{scope}[xscale=-1,red]
      \draw[->] (pR) to [out=150, in=30] (pG);
      \draw (pR) -- +(150:1) (pG) -- +(30:1);
    \end{scope}

    \begin{scope}[scale=-1,green]
      \draw[->] (pR) to [out=150, in=30] (pG);
      \draw (pR) -- +(150:1) (pG) -- +(30:1);
    \end{scope}
  \end{tikzpicture}
\end{document}

在此处输入图片描述

但您可以使用relative样式来改变这种行为。

\documentclass[tikz,border=2mm]{standalone}
\begin{document}
  \begin{tikzpicture}[thin,>=stealth, place/.style={circle, draw,thick,inner sep=1pt}]
    \node[place] (pG) at (-1.5,0) {.};
    \node[place] (pR) at (1.5,0) {.};

    \draw[->,relative] (pR) to [out=-30, in=-150] (pG);

    \begin{scope}[yscale=-1,blue]
      \draw[->,relative] (pR) to [out=-30, in=-150] (pG);
    \end{scope}

    \begin{scope}[xscale=-1,red]
      \draw[->,relative] (pR) to [out=-30, in=-150] (pG);
    \end{scope}

    \begin{scope}[scale=-1,green]
      \draw[->,relative] (pR) to [out=-30, in=-150] (pG);
    \end{scope}
  \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容