TikZ 的视角错误吗?

TikZ 的视角错误吗?

视角看起来不对。发生了什么?
(此外,请随意评论任何可以改进的地方。)

\documentclass{standalone}
\usepackage{tikz}\usetikzlibrary{calc}
\pagecolor{darkgray}\color{white}
\begin{document}
\begin{tikzpicture}[
  scale = 5,
  rotate around y = 50,
  dot/.style = {
    fill, draw, circle,
    inner sep = 0,
    minimum size = 2pt,
  }
]

  \node [dot] (O) at (0, 0, 0) {};
  \filldraw [
    color = green,
    fill opacity = 0.25,
  ]
    (1,0,0) node [dot] (i) {} --
    (0,1,0) node [dot] (j) {} --
    (0,0,1) node [dot] (k) {} --
    cycle;
  \draw [->] (O) -- ($1.3*(i)$);
  \draw [->] (O) -- ($1.3*(j)$);
  \draw [->] (O) -- ($1.3*(k)$);

\end{tikzpicture}
\end{document}

糟糕的视角

这是一个带有旋转的版本30

糟糕的视角腐烂 30

目标是下面的目标。

正确的观点

答案1

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{calc}
\pagecolor{darkgray}\color{white}
\begin{document}
\begin{tikzpicture}[
   x={(5,1)}, y={(0,4.3)}, z={(0.3,-0.8)},
   dot/.style = {
    fill, draw, circle,
    inner sep = 0,
    minimum size = 2pt,
  }
]

  \node [dot] (O) at (0, 0, 0) {};
  \filldraw [
    color = green,
    fill opacity = 0.25,
  ]
    (1,0,0) node [dot] (i) {} --
    (0,1,0) node [dot] (j) {} --
    (0,0,1) node [dot] (k) {} --
    cycle;
  \draw [->] (O) -- ($1.3*(i)$);
  \draw [->] (O) -- ($1.3*(j)$);
  \draw [->] (O) -- ($1.3*(k)$);

\end{tikzpicture}
\end{document}

带三角形的坐标系

答案2

由于 OP 的问题已在评论中得到解答,我将为未来的用户编写一份摘要。

OP:TikZ 的视角是否错误?发生了什么?
@PaulGaborit:TikZ 使用等距投影……

维基百科我们知道这是错误的。

[等轴测投影] 是一种轴测投影,其中三个坐标轴出现同样缩短其中任意两点之间的角度为120 度

相反,TikZ 使用橱柜平行投影。 从维基百科我们可以观察到这个很好的总结。

x@hpekristiansen 指出,可以通过为、y和轴指定三个单位向量来实现目标透视z(正如TikZ 手册v3.1.9a,第 25.2 节“XY 和 XYZ 坐标系”)通过增量步骤和视觉比较完成。因此,@hpekristiansen 添加的唯一一行代码是

\begin{tikzpicture}[                       % from before
  x={(5,1)}, y={(0,4.3)}, z={(0.3,-0.8)},  % NEW
  …                                        % everything else as before

相关内容