我有一定数量的点,我想用它们“穿过”这些点绘制一条样条/贝塞尔曲线。绘制曲线时,我想自动沿曲线放置等距的 p 个点。(因此:如果我定义曲线的原始点数为 n,则 n 和 p 之间没有关系(n 可以大于、等于或小于 p)
答案1
您几乎可以直接复制 pgfmanual 第 585 页中的第二个示例,以获得等距的圆。我之所以选择0.9999/#1
而不是,1/#
是因为最后一个圆圈可能会消失,否则。该样式equally spaced dots=p
产生p
等距点。为了绘制到某些点的平滑曲线,我使用了爱好库。
\documentclass[tikz, border=3.14mm]{standalone}
\usetikzlibrary{hobby}
\usetikzlibrary{decorations.markings}
\tikzset{equally spaced dots/.style={postaction={decorate,
decoration={markings,% switch on markings
mark=% actually add a mark
between positions 0 and 1 step 0.9999/#1
with
{
\fill circle (1pt);
}
}}}}
\begin{document}
\begin{tikzpicture}
\draw[equally spaced dots=5] (0,0) (0,0) to[curve through={(6,4) .. (4,9) .. (1,7)}]
(3 ,5);
\end{tikzpicture}
\end{document}