如何在 tikz 中使用带有位置的标记索引?

如何在 tikz 中使用带有位置的标记索引?

我正在尝试用一些箭头来装饰一条曲线,有一种方法可以用步骤指定百分比位置

% !TEX TS-program = xelatex
\documentclass[UTF8]{article}

\usepackage{float}

\usepackage{amssymb}

\usepackage{tikz}
\usepackage{tkz-euclide}
\usetikzlibrary{arrows.meta}
\usetkzobj{all}
\usepackage{graphicx}

\begin{document}

\begin{figure}[H]
\begin{center}
\begin{tikzpicture}
\begin{scope}[smooth, decoration = {markings, mark = between positions 0.2 and 0.65 step 0.45 with {\arrow{Stealth[round, scale = 1.5]}}}]
\draw[postaction = {decorate}, dashed] plot coordinates{(0.7, 3) (4, 3) (5, 4)};
\end{scope}
\end{tikzpicture}
\end{center}
\end{figure}

\end{document}

我也希望能够使用mark indices,如下所示

 \draw plot[mark = x, mark indices = {1, 4, ..., 10, 11, 12, ..., 16, 20}, smooth]

但是好像mark indices不能识别百分比位置,有没有什么办法可以让它接受这样的参数?

提前致谢!

答案1

我可能不明白你的问题,但你可以使用/.list键在列表中指定的位置放置一些装饰。我不确定你显示的数字是什么意思。我使用它们来指定路径长度为 25 的单位中的位置,但你当然可以更改这一点。

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{arrows.meta,decorations.markings}
\begin{document}
\begin{tikzpicture}
\begin{scope}[smooth, decoration = {markings, mark = between positions 0.2 and 0.65 step 0.45 with {\arrow{Stealth[round, scale = 1.5]}}}]
\draw[postaction = {decorate}, dashed] plot coordinates{(0.7, 3) (4, 3) (5, 4)};
\end{scope}
\begin{scope}[yshift=-2cm,percentage mark/.style={ decoration = {markings, mark =
at position #1/25 with {\draw[solid] (-2pt,-2pt) -- (2pt,2pt)
(-2pt,2pt) -- (2pt,-2pt);}}}]
\draw[postaction = {decorate,percentage mark/.list={1, 4, ..., 10, 11, 12, ..., 16, 20}}, dashed] 
(0.7, 3) to[out=0,in=180] (4, 3) to[out=0,in=-120] (5, 4);
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

请注意,我稍微改变了构建路径的方式,dimension to large如果您尝试在曲率较大的点添加一些装饰,则会引发错误。

相关内容