答案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}