答案1
TikZ 内部是 2D 的,因此你只能绘制一斜长方体在屏幕平面上的二维投影;可以使用一些包,例如tikz3d-plot
,3dtool
或者库。perspective
对于真实的 3D Asymptote,你可以将以下代码复制到http://asymptote.ualberta.ca/单击“运行”,然后使用计算机鼠标旋转输出图形。您可以猜测沿 y 轴倾斜的 3 维变换中的数字的含义ty
;矩阵中的最后一列始终是$(0,0,0,1)^T$
。
// http://asymptote.ualberta.ca/
size(4cm);
import three;
// slanting along y-axis
transform3 ty={
{ 1, 0, 0, 0},
{ 0, 1, .4, 0},
{ 0, 0, 1, 0},
{ 0, 0, 0, 1}
};
draw(ty*unitcube,yellow+opacity(.5));
draw(ty*unitbox,purple+opacity(1));
答案2
尝试这个:
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[fill=cyan] (0,0)--(4,0)--(5,3)--(1,3)--(0,0);
\draw[fill=green] (5,3)--(1,3)--(2,4)--(6,4)--(5,3);
\draw[fill=yellow] (4,0)--(5,3)--(6,4)--(5,1)--(4,0);
\draw[dashed] (2,4)--(1,1);
\draw[dashed] (0,0)--(1,1);
\draw[dashed] (1,1)--(5,1);
\end{tikzpicture}
\end{document}
输出: