使用 tikz 查找直线和曲线之间的几个交点

使用 tikz 查找直线和曲线之间的几个交点

我想使用 tikz 包找到橙色虚线和蓝色曲线之间的交点,见下面的截图。如你所见,只显示了第一个交点。但是,我想用红色标记标记直线和曲线之间的所有交点,而不仅仅是第一个交点。我正在考虑使用,\foreach{}但我对这个包还很陌生,我不确定应该如何实现。

截屏

我在序言中补充了以下内容:

\usepackage{tikz}    
\usetikzlibrary{intersections}

屏幕截图中显示的图表是通过以下几行代码实现的:

\begin{tikzpicture}[domain=0:10]
\draw[->] (-0.2,0) -- (10.2,0) node[right] {$t$}; 
\draw[->] (0,-1.4) -- (0,1.4) node[above] {$x(t)$};
\draw[color=orange, dashed, name path=plotA] plot (\x,0.75) node[right] {$x = a$}; 
\draw[color=blue, name path=plotB] plot[samples=1000] (\x,{sin(\x * 320)}) node[right] {$x(t) = \sin(t)$};
\path [name intersections={of=plotA and plotB,by=E}];
\node [fill=red,inner sep=1pt] at (E) {};
\end{tikzpicture}

答案1

TikZ您可以在文档中找到一些示例:第 145-146 页

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}[domain=0:10]
\draw[->] (-0.2,0) -- (10.2,0) node[right] {$t$}; 
\draw[->] (0,-1.4) -- (0,1.4) node[above] {$x(t)$};
\draw[color=orange, dashed, name path=plotA] plot (\x,0.75) node[right] {$x = a$}; 
\draw[color=blue, name path=plotB] plot[samples=1000] (\x,{sin(\x * 320)}) node[right] {$x(t) = \sin(t)$};
\fill [name intersections={of=plotA and plotB, name=E, total=\t}]
[red] 
\foreach \s in {1,2,...,\t}{(E-\s) circle (2pt)};

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容