Tikz - 在单个命令中使用两个坐标

Tikz - 在单个命令中使用两个坐标

梅威瑟:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds,matrix,patterns}

\begin{document}

    \begin{tikzpicture}
    \draw[<->] (0,8)--(0,0)--(8,0); 
    \draw[name path = A] (0,0) ..controls (3,8) and (4,8) .. (7,0) node[above right]{$A$};
    \draw[name path = B] (0,2)--(7,5) node[right]{$B$};

    \path [name intersections={of=A and B, by = {I1,I2}}];

    \draw[dashed] let \p1 = (I1) in (\x1,0) node[below]{$k^*$} --(\x1,\y1)--(0,\y1); 

    \end{tikzpicture}

\end{document}

如果你编译这个,你会注意到 A 和 B 之间有两个交点,这是我根据@marmot 的回答指定的这里

我想知道是否有办法使用 x 和 y 分量两个都\draw命令下方的命令中的交叉点\path

例如,像这样的东西(我自己的创作 - 它不起作用):

\draw[dashed] let {\p1,\p2} = {(I1),(I2)} in (\x1,0) node[below]{$k^*$} --(\x1,\y2)--(0,\y2);

答案1

kolegyr 为您提供了有关语法的相关信息calc

 \draw[dashed] let \p1=(I1),\p2=(I2) in (\x1,0) node[below]{$k^*$} --(\x1,\y2)--(0,\y2);

但是,在这种情况下,你甚至不需要calc,没有它,代码会变得更短。这在这个漂亮的答案

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}

    \begin{tikzpicture}
    \draw[<->] (0,8)--(0,0) coordinate (O) --(8,0); 
    \draw[name path = A] (0,0) ..controls (3,8) and (4,8) .. (7,0) node[above right]{$A$};
    \draw[name path = B] (0,2)--(7,5) node[right]{$B$};

    \path [name intersections={of=A and B, by = {I1,I2}}];

    %\draw[dashed] let \p1 = (I1) in (\x1,0) node[below]{$k^*$} --(\x1,\y1)--(0,\y1); 
    \draw[dashed] (I1-|O) node[below]{$k^*$} -- (I1)-- (O|-I2); 
    \end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容