在兴趣曲线上添加“切线节点”

在兴趣曲线上添加“切线节点”

是否可以沿着兴趣曲线放置节点,使得方向与曲线相切。我应该补充一下切线的含义:弯曲的兴趣路径应该代表一条弯曲的街道,然后我会在路径上的给定位置添加汽车图像,使得汽车指向与曲线相切。我尝试使用以下伪代码使其更清晰:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{hobby}
\usepackage{graphicx}

\begin{document}
\begin{tikzpicture}
\draw
(0,0) to[out angle=0,in angle=180,curve through={(1,.9) ..node[rotation=tangential,pos=0.4]{\includegraphics[width=0.5cm]{car}} (2,0) .. (3,.5)}] (4,0);
\end{tikzpicture}
\end{document}

以此辆车的图片为例:

答案1

尽管我不愿意承认,但hobby这里没有什么特别之处。这些decorations库允许您这样做:它们沿着曲线工作,而不考虑它是如何生成的(因此它可以由 Hobby 算法生成)并“随心所欲地做事”。当它们做它们要做的事情时,它们处于一个坐标系中,其中x点与曲线相切并且y是法线。因此:

\documentclass{article}
%\url{http://tex.stackexchange.com/q/81812/86}
\usepackage{tikz}
\usetikzlibrary{hobby,decorations.markings}
\usepackage{graphicx}

\begin{document}
\begin{tikzpicture}
\draw[
  postaction={
    decorate,
    decoration={
      markings,
      mark=at position 0.4 with
      {
        \draw[->,ultra thick,green] (-1,0) -- (1,0);
      }
    }
  }
]
(0,0) to[out angle=0,in angle=180,curve through={(1,.9) .. (2,0) .. (3,.5)}] (4,0);
\end{tikzpicture}
\end{document}

(抱歉,我不擅长画汽车。)

切线到曲线

如果标记包含一个节点,那么transform shape如果您想确保节点旋转以适应切向坐标系,您将需要使用该键(回想一下,除非明确告知,否则节点往往不会遵守所有周围的变换)。

将问题的图形保存为car.png

\documentclass{standalone}
%\url{http://tex.stackexchange.com/q/81812/86}
\usepackage{tikz}
\usetikzlibrary{hobby,decorations.markings}
\usepackage{graphicx}

\begin{document}
\begin{tikzpicture}
\draw[
  postaction={
    decorate,
    decoration={
      markings,
      mark=between positions 0 and 1 step 0.2 with
      {
        \node[transform shape] {\includegraphics[width=.5cm]{car}};
      }
    }
  }
]
(0,0) to[out angle=0,in angle=180,curve through={(1,.9) .. (2,0) .. (3,.5)}] (4,0);
\end{tikzpicture}
\end{document}

沿曲线行驶的汽车

相关内容