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