在两点之间画直线

在两点之间画直线

我希望我的代码能给我一些类似于图片的东西,但是我的相交直线不想移动到变量 1 的上方或下方,当我试图让它看起来与我的图片完全一样时,它会偏离我的坐标。

\begin{figure}
    \begin{center}
    \begin{tikzpicture}[scale=3]
    \draw[->] (-2,0) -- (2,0) node[right] {$R_{pe}$}; 
    \draw[->] (0,-1.5) -- (0,2) node[above] {$R_{ph}$};
    \draw[->] (-2,1) -- (2,1);
    \draw[->] (1,-1.5) -- (1,2);
    \draw[blue] (0,1)  -- (1,0) ;
    \end{tikzpicture}
\end{center}    
\end{figure}

答案1

我不太明白你对问题所在有何解释,但我想这只是选择正确坐标的问题。蓝线的斜率为 -1,因此你可以将线的起点设为 (-1,2),而不是 (0,1),将线的终点设为 (2,-1),而不是 (1,0)。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}[scale=2]
    \draw[->] (-2,0) -- (2,0) node[right] {$R_{pe}$}; 
    \draw[->] (0,-1.5) -- (0,2) node[above] {$R_{ph}$};
    \draw[->] (-2,1) -- (2,1);
    \draw[->] (1,-1.5) -- (1,2);
    \draw[blue] (-1,2)  -- (2,-1) node[right,black] {$R_0=\dots$};
    \node at (0.25,0.25) {I};
    \node at (0.75,0.75) {II};
\end{tikzpicture}
\end{figure}
\end{document}

代码输出

答案2

选择合适的坐标(如 Torbjørn Ts 的回答所建议的)可能是满足您要求的最佳方法。但如果您不坚持蓝线从垂直线的顶部精确延伸到水平线的右侧,则可以使用shorten负长度来延长线。

备注:在此示例中,我选择-3cm更好地展示限制,尽管这样-4cm会更合适。并且长度取决于scale您所使用的。

\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}[scale=3]
\draw[->] (-2,0) -- (2,0) node[right] {$R_{pe}$}; 
\draw[->] (0,-1.5) -- (0,2) node[above] {$R_{ph}$};
\draw[->] (-2,1) -- (2,1);
\draw[->] (1,-1.5) -- (1,2);
% -4cm for shorten is better, but set to -3cm to show the limitations
\draw[blue,shorten >=-3cm,shorten <=-3cm] (0,1)  -- (1,0) ;
\end{tikzpicture}
\end{document}

在此处输入图片描述

编辑:正如 Torbjørn T. 提到的,这样做的缺点是,节点不能轻易添加到线的末尾。使用

\draw[blue,shorten >=-3cm,shorten <=-3cm] (0,1)  -- (1,0) node[right]{foo};

将导致:

在此处输入图片描述

相关内容