立方体の下に回転したテキストを追加するにはどうすればいいですか?

立方体の下に回転したテキストを追加するにはどうすればいいですか?

以下のような立方体があります。立方体の下のテキストが図形とともに回転するように、立方体にテキスト属性を追加したいです。

ここに画像の説明を入力してください

これが私の立方体の定義です

  \tikzset{
    annotated cuboid/.pic={
      \tikzset{%
        every edge quotes/.append style={midway, auto},
        /cuboid/.cd,
        #1
      }
      \draw [\cubeline,every edge/.append style={pic actions,\cubeback, opacity=.5}, pic actions]
      (0,0,0) coordinate (o-\cubelabel) -- ++(-\cubescale*\cubex,0,0) coordinate (a-\cubelabel) -- ++(0,-\cubescale*\cubey,0) coordinate (b-\cubelabel) edge coordinate [pos=1] (g-\cubelabel) ++(0,0,-\cubescale*\cubez)  -- ++(\cubescale*\cubex,0,0) coordinate (c-\cubelabel) -- cycle
      (o-\cubelabel) -- ++(0,0,-\cubescale*\cubez) coordinate (d-\cubelabel) -- ++(0,-\cubescale*\cubey,0) coordinate (e-\cubelabel) edge (g-\cubelabel) -- (c-\cubelabel) -- cycle
      (o-\cubelabel) -- (a-\cubelabel) -- ++(0,0,-\cubescale*\cubez) coordinate (f-\cubelabel) edge (g-\cubelabel) -- (d-\cubelabel) -- cycle;

    },
    /cuboid/.search also={/tikz},
    /cuboid/.cd,
    width/.store in=\cubex,
    height/.store in=\cubey,
    depth/.store in=\cubez,
    units/.store in=\cubeunits,
    scale/.store in=\cubescale,
    label/.store in=\cubelabel,
    line/.store in=\cubeline,
    backline/.store in=\cubeback,
    width=10,
    height=10,
    depth=10,
    units=cm,
    scale=.1,   
    line=draw,
    backline=densely dashed
  }

私の完全なコード (MWE):

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\usetikzlibrary{quotes,arrows.meta, decorations.pathreplacing}
  \tikzset{
    annotated cuboid/.pic={
      \tikzset{%
        every edge quotes/.append style={midway, auto},
        /cuboid/.cd,
        #1
      }
      \draw [\cubeline,every edge/.append style={pic actions, \cubeback, opacity=.5}, pic actions]
      (0,0,0) coordinate (o-\cubelabel) -- ++(-\cubescale*\cubex,0,0) coordinate (a-\cubelabel) -- ++(0,-\cubescale*\cubey,0) coordinate (b-\cubelabel) edge coordinate [pos=1] (g-\cubelabel) ++(0,0,-\cubescale*\cubez)  -- ++(\cubescale*\cubex,0,0) coordinate (c-\cubelabel) -- cycle
      (o-\cubelabel) -- ++(0,0,-\cubescale*\cubez) coordinate (d-\cubelabel) -- ++(0,-\cubescale*\cubey,0) coordinate (e-\cubelabel) edge (g-\cubelabel) -- (c-\cubelabel) -- cycle
      (o-\cubelabel) -- (a-\cubelabel) -- ++(0,0,-\cubescale*\cubez) coordinate (f-\cubelabel) edge (g-\cubelabel) -- (d-\cubelabel) -- cycle;
      ;
    },
    /cuboid/.search also={/tikz},
    /cuboid/.cd,
    width/.store in=\cubex,
    height/.store in=\cubey,
    depth/.store in=\cubez,
    units/.store in=\cubeunits,
    scale/.store in=\cubescale,
    label/.store in=\cubelabel,
    line/.store in=\cubeline,
    backline/.store in=\cubeback,
    width=10,
    height=10,
    depth=10,
    units=cm,
    scale=.1,
    line=draw,
    backline=densely dashed,
  }
\newcommand{\cuboid}[2]{
    \begin{tikzpicture}
     \pic [#1] at (0,0) {annotated cuboid={#2}};
    \end{tikzpicture}
}
\tikzstyle{cubecontainer}=[outer sep = 0pt, inner sep= 0pt]
\tikzstyle{connectarrow}=[-{Triangle[angle=60:0pt 2]}, line width= 10pt, shorten >=3mm,shorten <=3mm, draw=gray!60]
\begin{document}
\begin{tikzpicture}
\node[cubecontainer] (a) at (0,0) {\cuboid{fill=cyan!20, text=green!50!black, draw=black}{label=A, width=6, height=20, depth=15, units=mm}};
%\node[cubecontainer] (b) at (2,0) {\cuboid{fill=cyan!20, text=green!50!black, draw=black}{label=B, width=6, height=20, depth=15, units=mm}};
%\node[cubecontainer] (c) at (5,0) {\cuboid{fill=cyan!20, text=green!50!black, draw=black}{label=C, width=6, height=20, depth=15, units=mm}};
%%\node[draw,dotted,fit=(a) (b) (c)] {};
\end{tikzpicture}
\end{document}

答え1

次のような単純なノードが\node [below of=a, node distance=1.4cm,rotate=45,xshift=-1cm] (critical) {20x30x20};高すぎる場合は、tikzsetcubecontainer 内にラベルを設定できます。回転には を使用できます\rotatebox{45}{#1}#1は、ドキュメントで定義されているラベルです。

\tikzset{cubecontainer/.style={outer sep= 0pt, inner sep= 0pt,label={265:\rotatebox{45}{#1}}}
}%optional with red background ... [fill=red]265 ....

265は、0=東から 360=東まで反時計回りに数えた位置決め角度です。(正方形の場合: 0=東、90=北、180=西、270=南、...)

...そして、ノードに label = 20x20x30( \node[cubecontainer=20x20x30]) というラベルを付けて使用します。

\node[cubecontainer=20x20x30] (a) at (0,0) {\cuboid{fill=cyan!20, text=green!50!black, draw=black}{label=A, width=6, height=20, depth=15, units=mm}};


編集: 2.バージョンcubecontainer- 次のようにフォントサイズを変更しますcubecontainer/.style

\tikzset{cubecontainer/.style={outer sep= 0pt, inner sep= 0pt,label={265:\rotatebox{45}{\Huge #1}}} }

  1. バージョン:

ここに画像の説明を入力してください

  1. バージョン: フォントサイズ (\Huge)

(最初のバージョン(左)と2番目のバージョン(右)の比較)

ここに画像の説明を入力してください

MWE:

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\usetikzlibrary{quotes,arrows.meta, decorations.pathreplacing}
  \tikzset{
    annotated cuboid/.pic={
      \tikzset{%
        every edge quotes/.append style={midway, auto},
        /cuboid/.cd,
        #1
      }
      \draw [\cubeline,every edge/.append style={pic actions, \cubeback, opacity=.5}, pic actions]
      (0,0,0) coordinate (o-\cubelabel) -- ++(-\cubescale*\cubex,0,0) coordinate (a-\cubelabel) -- ++(0,-\cubescale*\cubey,0) coordinate (b-\cubelabel) edge coordinate [pos=1] (g-\cubelabel) ++(0,0,-\cubescale*\cubez)  -- ++(\cubescale*\cubex,0,0) coordinate (c-\cubelabel) -- cycle
      (o-\cubelabel) -- ++(0,0,-\cubescale*\cubez) coordinate (d-\cubelabel) -- ++(0,-\cubescale*\cubey,0) coordinate (e-\cubelabel) edge (g-\cubelabel) -- (c-\cubelabel) -- cycle
      (o-\cubelabel) -- (a-\cubelabel) -- ++(0,0,-\cubescale*\cubez) coordinate (f-\cubelabel) edge (g-\cubelabel) -- (d-\cubelabel) -- cycle;
      ;
    },
    /cuboid/.search also={/tikz},
    /cuboid/.cd,
    width/.store in=\cubex,
    height/.store in=\cubey,
    depth/.store in=\cubez,
    units/.store in=\cubeunits,
    scale/.store in=\cubescale,
    label/.store in=\cubelabel,
    line/.store in=\cubeline,
    backline/.store in=\cubeback,
    width=10,
    height=10,
    depth=10,
    units=cm,
    scale=.1,
    line=draw,
    backline=densely dashed,
  }
\newcommand{\cuboid}[2]{
    \begin{tikzpicture}
     \pic [#1] at (0,0) {annotated cuboid={#2}};
    \end{tikzpicture}
}
\tikzset{cubecontainer/.style={outer sep= 0pt, inner sep= 0pt,label={[fill=white]265:\rotatebox{45}{#1}}}
}
%\tikzset{cubecontainer/.style={outer sep= 0pt, inner sep= 0pt,label={265:\rotatebox{45}{\Huge #1}}} }
\tikzstyle{connectarrow}=[-{Triangle[angle=60:0pt 2]}, line width= 10pt, shorten >=3mm,shorten <=3mm, draw=gray!60]
\begin{document}
\begin{tikzpicture}
\node[cubecontainer=20x20x30] (a) at (0,0) {\cuboid{fill=cyan!20, text=green!50!black, draw=black}{label=A, width=6, height=20, depth=15, units=mm}};
%\node [below of=a, node distance=1.4cm,rotate=45,xshift=-1cm]  (critical) {20x30x20};
\end{tikzpicture}
\end{document}

関連情報