我想要画一条类似下面的道路(但为了简单起见,请忽略草地、土壤和周围的风景),
来说明关于圆周运动的物理问题。由于其文档冗长,我还没有体验到它的威力pst-solides3d
。我的尝试如下,但在 2D 中看起来不太好。
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-node}
\begin{document}
\begin{pspicture}[dimen=m](-5,0)(5,4)
\pscustom[fillstyle=solid,fillcolor=gray]{\pspolygon(-5,0)(-5,1)(-1,0)\scale{-1 1}\pspolygon(-5,0)(-5,1)(-1,0)}
\bgroup
\psset{linecolor=lightgray}
\psline(0,4)(0,3.5)
\psline(0,3.25)
\psellipticarc{->}(0,3.5)(1,.25){-90}{270}
\egroup
\pcline[linestyle=none](-5,1)(-1,0)\naput[nrot=:U,npos=.25,labelsep=-.5\pslinewidth]{\rput(.5,.5){\small car}\psframe(0,.25)(1,.75)\psline[linewidth=3pt](.25,0)(.25,.25)\psline[linewidth=3pt](.75,0)(.75,.25)}
\end{pspicture}
\end{document}
我想先画出完整的电路,然后移动视口,使其看起来像上面的第一张图。我相信你的回答会帮助我轻松学习剩下的内容。
答案1
好吧,这是一个开始。使用 Jeff Hein 的(非常出色)tikz-plot3d
(由您的标签建议),我至少构建了赛道的外部和内部边界(洋红色)。您希望包含的所有其他元素以及视角都可以使用此包实现(我认为),并且可能会在包中提供很好的熟悉课程。
作为第一步,我建议尝试各种值\tdplotsetmaincoords{80}{110}
并观察不同的视角......
\documentclass[border=12pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{80}{110}
%
\pgfmathsetmacro{\rvec}{.8}
\pgfmathsetmacro{\thetavec}{30}
\pgfmathsetmacro{\phivec}{60}
%
\begin{tikzpicture}[scale=5,tdplot_main_coords]
\coordinate (O) at (0,0,0);
\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};
\tdplotsetcoord{P}{\rvec}{\thetavec}{\phivec}
\draw[-stealth, color=red] (O) -- (P);
\draw[dashed, color=red] (O) -- (Pxy);
\draw[dashed, color=red] (P) -- (Pxy);
\tdplotdrawarc{(O)}{0.2}{0}{\phivec}{anchor=north}{$\phi$}
\tdplotsetthetaplanecoords{\phivec}
\tdplotdrawarc[tdplot_rotated_coords]{(0,0,0)}{0.5}{0}%
{\thetavec}{anchor=south west}{$\theta$}
\draw[dashed,tdplot_rotated_coords] (\rvec,0,0) arc (0:90:\rvec);
\draw[dashed] (\rvec,0,0) arc (0:90:\rvec);
\draw[thick, color=magenta] (\rvec/2,0,0) arc (0:180:\rvec/2); % inner edge of racetrack
\draw[thick, color=magenta] (\rvec,0,0.3) arc (0:180:\rvec); % outer edge of racetrack
\end{tikzpicture}
\end{document}