如何为路径制作动画或如何绘制复杂但线性路径的起始部分?

如何为路径制作动画或如何绘制复杂但线性路径的起始部分?

我想复制类似的东西动画协议但采用的是复合路径,而不是直线路径。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{animate}
\usetikzlibrary{intersections}

\begin{document}

\begin{animateinline}[loop]{10}

\multiframe{10}{rPos=0.1+0.1}{
\begin{tikzpicture}[every node/.style={circle,draw}]

\node(R0) at (0,0) {R0};
\node[draw,circle] (R1) at (1,3) {R1};
\node[draw,circle] (R2) at (2,1) {R2};
\node[draw,circle] (R3) at (3,2) {R3};

\path[name path=route] (R0)--(R1)--(R2)--(R3)
node[pos=\rPos,coordinate] (p) {};

%I would like to draw the already defined path from R0 to p
\draw[->] (R0) -- (p);

%\draw \route

\end{tikzpicture}
} 
\end{animateinline}
\end{document} 

我想声明路径并只绘制每帧中的初始段,但我不知道如何绘制“命名路径”。使用此解决方案,绘制的路径是 (R0) 和 (p) 之间的直线,但我希望它遵循 (R0)--(R1)--(R2)--(R3)。你知道怎么做吗?

pgf 的手册仅使用“命名路径”来查找交点,所以我不知道一旦定义如何使用它们。

Caramdir 的回答使用TikZ: draw only a certain central length of a given path 装饰来绘制任何路径的某个部分。我已经调整了它来绘制路径的起始段,但我想绘制路径长度的一定百分比,而不是固定长度(3 厘米)。我在手册中找不到如何为装饰提供参数。

并且在tikz-pgf 路径的长度、表面和坐标,Andrew Stacey 建议使用仍在开发中的新 TEX-SX 软件包。这似乎是他们的方法,但我认为应该有一个更简单的解决方案。

你知道吗?

答案1

以下是 Caramdir 提出的装饰,适用于仅绘制任意路径的第一个部分:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations}

% A simple empty decoration, that is used to ignore the last bit of the path
\pgfdeclaredecoration{ignore}{final}
{
\state{final}{}
}

% Declare the actual decoration.
\pgfdeclaremetadecoration{middle}{initial}{
    \state{initial}[
        width={0pt},
        next state=middle
    ]
    {\decoration{moveto}}

    \state{middle}[
        width={\pgfdecorationsegmentlength*\pgfmetadecoratedpathlength},
        next state=final
    ]
    {\decoration{curveto}}

    \state{final}
    {\decoration{ignore}}
}

% Create a key for easy access to the decoration
\tikzset{middle segment/.style={decoration={middle},decorate, segment length=#1}}

\begin{document}\noindent
\foreach \step in {0.2,0.4,...,1} {%
\begin{tikzpicture}
    \draw[middle segment=\step,ultra thick,red,->] (0,0) to[out=30,in=150] (3,0) -- (7,1) -- (8,0);
\end{tikzpicture}\\
}
\end{document}

相关内容