如上图,左边是默认的Oxyz空间坐标系的三个轴的方向,我想像右图那样的右手系坐标系,要如何建立呢?
也就是说我想让基底的平面xOy不是与电脑屏幕平行的这个平面,而是右图那个xOy平面!
\documentclass[tikz,border=1cm]{standalone}
%\usepackage{tikz-3dplot}
\usetikzlibrary{calc}
\usetikzlibrary{3d}
\begin{document}
\begin{tikzpicture}
\draw[->,red] (0,0,0)--(1,0,0)node[right]{$x$};
\draw[->,green](0,0,0)--(0,1,0)node[right]{$y$};
\draw[->,blue] (0,0,0)--(0,0,1)node[right]{$z$};
\end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{tikzpicture}[]
% ...
%\end{tikzpicture}
\end{document}
根据tikz-3dplot
的文档的2.1节,可以在原始坐标系中直接指定x,y,z轴。
调整数值后,完整代码和效果如下:
\documentclass[tikz,border=1pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
x={(-0.4 cm, -0.4 cm)},
y={(1.0 cm, 0 cm)},
z={(0, 1.0 cm)}]
\draw[->,red] (0,0,0)--(1,0,0) node[right]{$x$};
\draw[->,green] (0,0,0)--(0,1,0) node[right]{$y$};
\draw[->,blue] (0,0,0)--(0,0,1) node[right]{$z$};
\end{tikzpicture}
\end{document}
虽然我不太了解tikz-3d
这个包,但参照文档内容(如下图)略加修改一下视线的夹角 theta 和 phi可以实现类似效果:
下面是mwe和效果:
\documentclass[tikz,border=1cm]{standalone}
\usepackage{tikz-3dplot}
% \usetikzlibrary{calc}
% \usetikzlibrary{3d}
\begin{document}
\tdplotsetmaincoords{70}{120}
\begin{tikzpicture}[tdplot_main_coords]
\draw[->,red] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
\draw[->,green] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
\draw[->,blue] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};
\end{tikzpicture}
\end{document}
问题里图形, 看上去像是斜二等轴测图, 直接用
/tikz/x, y, z
方便.tikz-3dplot
定义标架时, 用的是刚体旋转的方式, 单位正交矩阵.@u817 这个方法我不太明白诶,可否指个路,谢谢大神!
@u70550
见另一个网友的回答.
或者参考 tikz 手册的 25.2.
或者在手册中直接搜索
/tikz/x=
.tikz-3dplot
用旋转矩阵计算标架的基向量, 然后用这三个选项设置 xyz 坐标系.斜二等轴测图的坐标系不是这种坐标系.