我正在尝试绘制一个前缘具有正弦波的平面。
使用来自的代码这个例子我可以用类似的东西来画它
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{70}
\begin{tikzpicture}[scale=3,tdplot_main_coords]
\filldraw[draw=red,fill=red!20
] (0,0,-0.5)
-- (0,1,-0.5)
-- (0,1,1)
-- (0,0,1)
-- (0,{0.1*sin(deg(4*pi*0.975)},0.975)
-- ...lots more points....
-- (0,{0.1*sin(deg(4*pi*-0.475)},-0.475)
-- cycle;
\draw[thick,->] (0,-0.2,0) -- (0,1.2,0) node[anchor=north west]{$x$};
\draw[thick,->] (0,0,-0.5) -- (0,0,1.2) node[anchor=south]{$z$};
\draw[thick,->] (-0.5,0,0) -- (1.2,0,0) node[anchor=north east]{$y$};
\end{tikzpicture}
\end{document}
我手动指定正弦曲线上的所有点。一定有更好的方法可以做到这一点,例如
--[domain=1:-0.5] (0,{0.1*sin(deg(4*pi*x)},x)
我附上了迄今为止手动操作的结果。我希望能够改变正弦波,这就是为什么我想要一种更好的方法。
答案1
你几乎明白了。查看代码:
\documentclass[tikz, border=5mm]{standalone}
\usepackage{tikz-3dplot}
\tdplotsetmaincoords{70}{70}
\begin{document}
\begin{tikzpicture}[tdplot_main_coords]
\draw [red, fill=red!20, domain=-.5:1, samples=100] plot (0,{.1*sin(deg(4*pi*\x))},\x) -- (0,1,1) -- (0,1,-.5) -- cycle;
\begin{scope}[->, shorten >= 2mm]
\draw (-.5,0,0) -- (2,0,0) node {$y$};
\draw (0,-.5,0) -- (0,2,0) node {$x$};
\draw (0,0,-.5) -- (0,0,2) node {$z$};
\end{scope}
\end{tikzpicture}
\end{document}
答案2
如果使用实际函数而不是一步一步手动绘制它会更容易。
输出
代码
\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{70}
\begin{tikzpicture}[scale=3,tdplot_main_coords]
\fill[draw=red, fill=red!20, variable=\z,domain=-.5:1,samples=200]
(0,0,-.5) plot (0,{sin(\z*pi r*4)/10},\z)
-- (0,1,1)
-- (0,1,-0.5)
-- cycle;
\draw[thick,->] (0,-0.2,0) -- (0,1.2,0) node[anchor=north west]{$x$};
\draw[thick,->] (0,0,-0.5) -- (0,0,1.2) node[anchor=south]{$z$};
\draw[thick,->] (-0.5,0,0) -- (1.2,0,0) node[anchor=north east]{$y$};
\end{tikzpicture}
\end{document}