绕圆柱体螺旋

绕圆柱体螺旋

我想画一个围绕圆柱体的螺旋线。你能帮我吗?

类似的东西http://www.unitmath.com/um/p/Examples/GeometricSolids/Spiral.gif

非常感谢。

答案1

螺旋线可以用参数化的坐标绘制plot。该示例使用 3D 坐标系,轴向下倾斜30°。

原点是底部圆的中心点。

plot曲线通过变量绘制\t,变量指定角度。Xcos(\t)*\cylrad坐标通过以\cylrad圆柱半径计算得出。坐标通过计算得出-sin(\t)*\cylrad。负号是由于轴指向另一个方向。

螺旋曲线上某一点的高度与角度成比例增长。

完整示例:

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[
  x=10mm,
  y=cos(30)*10mm,
  z={(0, -sin(30)*10mm)},
]
  \def\cylrad{1}% radius
  \def\cylht{4}
  \draw
    (-\cylrad, \cylht) -- (-\cylrad, 0) --
    plot[smooth, samples=25, variable=\t, domain=180:360]
      ({cos(\t)*\cylrad}, 0, {-sin(\t)*\cylrad}) --
    (\cylrad, \cylht)
    plot[smooth cycle, samples=51, variable=\t, domain=0:360]
      ({cos(\t)*\cylrad}, \cylht, {-sin(\t)*\cylrad})
  ;
  \draw[densely dashed]
    plot[smooth, samples=9, variable=\t, domain=0:180]
      ({cos(\t)*\cylrad}, 0, {-sin(\t)*\cylrad})
  ;
  \draw[semithick]
    \foreach \y in {0, \cylht/2} {
      plot[smooth, samples=25, variable=\t, domain=180:360]
        ({cos(\t)*\cylrad}, {\y + (\t-180)*\cylht/720}, {-sin(\t)*\cylrad})
    }
  ;  
  \draw[semithick, densely dashed]
    \foreach \y in {\cylht/4, 3*\cylht/4} {
      plot[smooth, samples=25, variable=\t, domain=0:180]
        ({cos(\t)*\cylrad}, {\y + \t*\cylht/720}, {-sin(\t)*\cylrad})
    }
  ;  
\end{tikzpicture}
\end{document}

结果

相关内容