梅威瑟:
\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}