根据这个答案土拨鼠我正在思考如何设计粗化土壤中沿流线的湍流流态。
最小工作示例(MWE):
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings,decorations.pathmorphing}
\tikzset{gluon/.style={decorate, draw=magenta,
decoration={coil,amplitude=20pt, segment length=25pt}}}
\begin{document}
\begin{tikzpicture}
\draw[gluon, blue] (0,0) -- (10,0);%
\end{tikzpicture}
\end{document}
结果截图:
问题说明:
也许可以让这些线圈看起来更“碎片化”,这样它们就可以可视化湍流流态,如下所示。可以沿着流线添加几条线圈线,并剪掉线圈的随机碎片,这样可能会出现这样的情况:
你们对此有什么看法?无论如何,是否有可能删除随机碎片?
答案1
由于这个问题几天都没有得到任何答案,下面是一些可能朝着“正确”方向发展的东西。它有点像John Kormylo 建议并且其他方面与你所指的答案。它只是画出带有一定随机性的in
弧线。out
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{intersections,arrows.meta,bending}
\newcounter{randarcs}
\begin{document}
\begin{tikzpicture}[randarc/.style={out=\angA+90+\angB/6,in=\angA+90-\angB/6,
looseness=\lsns}]
%\draw[clip] (0,0) rectangle (4,4);
\pgfmathsetseed{21}
\foreach \X in {1,...,100}
{\pgfmathsetmacro{\myx}{-0.5+5*rnd}
\pgfmathsetmacro{\myy}{-0.5+5*rnd}
\pgfmathsetmacro{\angA}{360*rnd}
\pgfmathsetmacro{\radA}{0.3+0.3*rnd}
\pgfmathsetmacro{\myxp}{\myx+\radA*cos(\angA)}
\pgfmathsetmacro{\myyp}{\myy+\radA*sin(\angA)}
\pgfmathsetmacro{\angB}{360*sin(90*rnd)}
\pgfmathsetmacro{\lsns}{1+3*\radA}
%\typeout{\angA,\radA;\angB,\radB}
\path[-{Latex},name path=test-arc]
(\myx,\myy) to[randarc] (\myxp,\myyp) ;
\def\HasIntersection{0}
\ifnum\X>1
\foreach \Y in {1,...,\number\value{randarcs}}
{\path[name intersections={of=\Y-arc and test-arc,total=\t},
/utils/exec=\ifnum\t>0
\xdef\HasIntersection{1}%\typeout{intersects}
\fi];
}
\fi
\ifnum\HasIntersection=0
\stepcounter{randarcs}
\draw[-]
(\myx,\myy) to[randarc] (\myxp,\myyp);
\path[name path global=\number\value{randarcs}-arc]
(\myx,\myy) to[randarc] (\myxp,\myyp)-- cycle;
\fi}
\end{tikzpicture}
\typeout{\number\value{randarcs}\space arcs\space drawn.}
\end{document}
有很多方法可以自定义/改进这一点,但我不知道你的具体偏好,所以我在这里没有这样做。在弧之间施加一个宽限距离似乎是可行的(busing local bounding boxes
。