TikZ 中的楔形/锥形路径

TikZ 中的楔形/锥形路径

最初的问题

是否有一种简单的方法可以沿路径长度改变路径的厚度以创建楔形(例如,创建立体化学提示)?

例如顺式-环己烷-1,2-二醇,在ACD/ChemSketch 中绘制。

顺式-1,2-环己二醇

expanding waves装饰器对于后退键来说看起来很完美,但没有列出对于接近键的等效物。

玩转扩展波浪装饰器

根据 Jake 链接的线程,我查看了可以使用装饰器调整的变量expanding waves。我认为当前的 PGF/TikZ 手册没有明确提到它,但expanding waves装饰器有一个segment length变量,如这个例子- 将其设置为我的线宽 0.4 pt 会产生一个实心楔子。

顺式-1,2-环己二醇

正如杰克 (Jake) 指出的那样,出于性能原因,这是解决此问题的错误方法。

答案1

这是一个三角形装饰。它用等腰三角形替换路径的第一段。您可以通过triangle path在 adrawfill命令中指定选项来使用它。可以使用可选参数指定宽度(即使triangle path=2cm三角形宽度为 2 厘米)。

以下命令

\draw [fill=yellow,triangle path] (0,0) -- (3,2);
\fill [triangle path=4ex] (4,1) -- (7,0);

将产生

三角形装饰

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

\begin{document}

\pgfdeclaredecoration{triangle}{start}{
  \state{start}[width=0.99\pgfdecoratedinputsegmentremainingdistance,next state=up from center]
  {\pgfpathlineto{\pgfpointorigin}}
  \state{up from center}[next state=do nothing]
  {
    \pgfpathlineto{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentamplitude}}
    \pgfpathlineto{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentamplitude}}
    \pgfpathlineto{\pgfpointdecoratedpathfirst}
  }
  \state{do nothing}[width=\pgfdecorationsegmentlength,next state=do nothing]{
    \pgfpathlineto{\pgfpointdecoratedinputsegmentfirst}
    \pgfpathmoveto{\pgfpointdecoratedinputsegmentlast}
  }
}

\tikzset{
    triangle path/.style={decoration={triangle,amplitude=#1}, decorate},
    triangle path/.default=1ex}

\begin{tikzpicture}
\draw [fill=yellow,triangle path] (0,0) -- (3,2);
\fill [triangle path=4ex] (4,1) -- (7,0);
\end{tikzpicture}
\end{document}

相关内容