在 TikZ 中绘制平行六面体

在 TikZ 中绘制平行六面体

我需要在 TikZ 中绘制这样的平行六面体:

在此处输入图片描述

我想使用视图以 3D 形式绘制,而不是以 2D 形式绘制。

答案1

TikZ 内部是 2D 的,因此你只能绘制斜长方体在屏幕平面上的二维投影;可以使用一些包,例如tikz3d-plot3dtool或者库。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}

输出:

在此处输入图片描述

相关内容