我有一个 3d 坐标系,我想用一个点标记一个点。
\begin{tikzpicture}[x = {(0.866cm,0.5cm)}, y={(0cm,1cm)}, z={(0.866cm,-0.5cm)},]
\draw[thick,->] (-15,0,0) -- (15,0,0) node[right] {x};
\draw[thick,->] (0,-12,0) -- (0,12,0) node[above] {y};
\draw[thick,->] (0,0,-15) -- (0,0,50) node[right] {z};
\fill (0,0,5) circle (1);
\end{tikzpicture}
结果如下:
但从这个角度来看,我想要的是一个球体或一个圆形:
我怎样才能实现这个目标?
答案1
通常,我花 2 个小时在互联网上搜索。然后在最终发布后,2 分钟后我自己找到了答案。但由于很难找到,也许它会对其他人有所帮助:
\begin{tikzpicture}[x = {(0.866cm,0.5cm)}, y={(0cm,1cm)}, z={(0.866cm,-0.5cm)},]
\draw[thick,->] (-15,0,0) -- (15,0,0) node[right] {x};
\draw[thick,->] (0,-12,0) -- (0,12,0) node[above] {y};
\draw[thick,->] (0,0,-15) -- (0,0,50) node[right] {z};
\draw plot [mark=*, mark size=10] coordinates{(0,0,5)};
\end{tikzpicture}
我不知道它是如何工作的,但它完全满足了我的要求:
答案2
这里展示了一种tikz-3dplot
可以改变大小的球体和圆形的解决方案。
代码
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\tdplotsetmaincoords{120}{50}
\begin{document}
\begin{tikzpicture}[scale=2, tdplot_main_coords,axis/.style={->},thick]
\draw[axis] (-1, 0, 0) -- (1, 0, 0) node [right] {$X$};
\draw[axis] (0, -1, 0) -- (0, 3, 0) node [right] {$Z$};
\draw[axis] (0, 0, -1) -- (0, 0, 1) node [above] {$Y$};
\node[draw=none,shape=circle,fill, inner sep=2pt] (d1) at (0,1,0){}; % circle
\tdplottransformmainscreen{0}{2}{0}
\shade[tdplot_screen_coords, ball color = red] (\tdplotresx,\tdplotresy) circle (0.05); % sphere
\end{tikzpicture}
\end{document}
答案3
您可以用来node
表达您的观点。
如果您想将点放在线上,使用标记是完美的选择,但如果您想将点放在线外......
\documentclass[tikz, varwidth, border=10]{standalone}
\begin{document}
\begin{tikzpicture}[scale=.2, x = {(0.866cm,0.5cm)}, y={(0cm,1cm)}, z={(0.866cm,-0.5cm)}]
\draw[thick,->] (-15,0,0) -- (15,0,0) node[right] {x};
\draw[thick,->] (0,-12,0) -- (0,12,0) node[above] {y};
\draw[thick,->] (0,0,-15) -- (0,0,50) node[right] {z};
\path (0,0,5) node[circle, fill, inner sep=1]{};
\path (1,0,5) node[circle, fill, inner sep=1]{};
\end{tikzpicture}
\end{document}
注意:您可以阅读这个问题/答案。