1)

1)

是否可以在 (2,2) (4,3) 之间绘制粗曲线。其余部分必须较细。

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw [blue] plot [smooth] coordinates {(0,0) (2,2) (4,3) (5,5) (0,10)};
\end{tikzpicture}
\end{document}

答案1

1)

clip这是针对您的特定 MWE 的简单解决方案(通过操作)。

在此处输入图片描述

\documentclass{standalone}
\usepackage{tikz}
\def\mycoordinates{(0,0) (2,2) (4,3) (5,5) (0,10)}
\begin{document}
\begin{tikzpicture}
  \draw [blue,thin] plot [smooth] coordinates {\mycoordinates};
  \begin{scope}
    \clip (0,2) rectangle (5,3);
    \draw [red,very thick] plot [smooth] coordinates {\mycoordinates};
  \end{scope}
\end{tikzpicture}
\end{document}

2)

以下是更通用的解决方案(通过show path construction装饰)。

style between样式需要三个参数:{<坐标#1>}{<坐标#2>}{<特殊风格>}。 这特殊风格应用于之间的段坐标#1坐标#2

在此处输入图片描述

\documentclass{standalone}
\usepackage{tikz}
\usepackage{ifthen}
\usetikzlibrary{decorations.pathreplacing,decorations.markings}
\newcounter{pos}
\tikzset{
  initcounter/.code={\setcounter{pos}{0}},
  style between/.style n args={3}{
    postaction={
      initcounter,
      decorate,
      decoration={
        show path construction,
        curveto code={
          \addtocounter{pos}{1}
          \pgfmathtruncatemacro{\min}{#1 - 1}
          \ifthenelse{\thepos < #2 \AND \thepos > \min}{
            \draw[#3]
            (\tikzinputsegmentfirst)
            ..
            controls (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb)
            ..
            (\tikzinputsegmentlast);
          }{}
        }
      }
    },
  },
}
\begin{document}
\begin{tikzpicture}
  \draw [
  style between={2}{4}{red,thick},
  style between={5}{8}{green,very thick},
  blue,thin] plot [smooth]
  coordinates {(0,0) (4,0) (2,4) (1,1) (3,1) (1,3) (0,1) (1,0) (4,4)};
\end{tikzpicture}
\end{document}

相关内容