TikZによる立方体、平行六面体の描画
ヤコビアンAの平行六面体画像がひどすぎる件
今現在数理統計学のコンテンツでヤコビアンAを作成しているが、その中で使う写像による平行六面体の画像に関して、当初エクセルで次のようなものを作っていた。↓
もともと当Webサイト管理人は絵心が全くない…
だからといって上のような画像はさすがにひどすぎと(自分で)思ったので今回のプラグインでTikZというのがあるので、今回以下のサイト様からのコードを拝借して平行六面体の画像を作成することにした次第になる。
https://tex.stackexchange.com/questions/654533/drawing-a-parallelopiped-in-tikz
上記サイト様より以下参考引用
コード
\begin{tikzpicture}
\draw[fill=magenta] (0,0)--(4,0)--(5,3)--(1,3)--(0,0);
\draw[fill=cyan] (5,3)--(1,3)--(2.2,4.2)--(6.2,4.2)--(5,3);
\draw[fill=lime] (4,0)--(5,3)--(6.2,4.2)--(5.2,1.2)--(4,0);
\draw[dashed] (2.2,4.2)--(1.2,1.2);
\draw[dashed] (0,0)--(1.2,1.2);
\draw[dashed] (1.2,1.2)--(5.2,1.2);
\end{tikzpicture}
んでもってTeXclip様のところで出力させてみたところ以下のような画像がでけますた。
出力画像
!!(・ω・;)ウーンすばらすい!!
今回始めてTikZを実際に使ってみてその画像に驚いたもんなんだが、
なんとTeXclip様もこのTikZに対応していたという…
さすがにこれにもビックリしますた( ゚Д゚)
ということでこのエントリーでは以下電々で平行六面体などの描画のためのコードとその出力画像を貼り付けた内容になっています。
正六面体(基本)
コード
\begin{tikzpicture}
\draw[fill=magenta] (0,0)--(4,0)--(4,3)--(0,3)--(0,0);
\draw[fill=cyan] (0,3)--(0,3)--(2,4)--(6,4)--(4,3);
\draw[fill=lime] (4,0)--(4,3)--(6,4)--(6,1)--(4,0);
\draw[dashed] (2,4)--(2,1);
\draw[dashed] (0,0)--(2,1);
\draw[dashed] (2,1)--(6,1);
\end{tikzpicture}
出力画像
上記のコードの見方としては色(マゼンタ、シアン、ライム)で面体を区別しているのでどの色(面)部分がどの数値に対応しているかが説明しなくともわかるようになっている。
いろいろ試してみてみたいという人は上記のコードをコピペしてカッコの中の数値をいじくってみてコンバートしてみるといいだろう。
平行六面体描画@
コード
\begin{tikzpicture}
\draw[fill=cyan] (0,0)--(4,0)--(5,3)--(1,3)--(0,0);
\draw[fill=green] (5,3)--(1,3)--(4,4)--(8,4)--(5,3);
\draw[fill=yellow] (4,0)--(5,3)--(8,4)--(7,1)--(4,0);
\draw[dashed] (3,1)--(4,4);
\draw[dashed] (0,0)--(3,1);
\draw[dashed] (3,1)--(7,1);
\end{tikzpicture}
出力画像
平行六面体描画A
コード
\begin{tikzpicture}
\draw[fill=yellow] (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=cyan] (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}
出力画像
写像系平行六面体
コード
\begin{tikzpicture}
\draw[fill=cyan] (0,0)--(4,0.2)--(5.0,3.2)--(1,3)--(0,0);
\draw[fill=green] (5,3.2)--(1,3)--(4.2,3.8)--(8,4)--(5,3.2);
\draw[fill=yellow] (4,0.2)--(5,3.2)--(8,4)--(7,1)--(4,0.2);
\draw[dashed] (3.2,0.8)--(4.2,3.8);
\draw[dashed] (0,0)--(3.2,0.8);
\draw[dashed] (3.2,0.8)--(7,1);
\end{tikzpicture}
出力画像
平行六面体ベクトル組み合わせ
コード
\usetikzlibrary{arrows.meta}
\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=violet] (4,0)--(5,3)--(6,4)--(5,1)--(4,0);
\draw[dashed] (1,1)--(2,4);
\draw [->, >={Stealth[round]}] (0,0)--(1,1);
\draw [->, >={Stealth[round]}] (0,0)--(4,0);
\draw [->, >={Stealth[round]}] (0,0)--(1,3);
\draw [->, >={Stealth[round]}] (0,0)--(0,4);
\draw[dashed] (1,1)--(5,1);
\end{tikzpicture}
出力画像
写像系平行六面体ベクトル組み合わせ
コード
\usetikzlibrary{arrows.meta}
\begin{tikzpicture}
\draw[fill=cyan] (0,0)--(4,0.2)--(5.0,3.2)--(1,3)--(0,0);
\draw[fill=green] (5,3.2)--(1,3)--(4.2,3.8)--(8,4)--(5,3.2);
\draw[fill=yellow] (4,0.2)--(5,3.2)--(8,4)--(7,1)--(4,0.2);
\draw[dashed] (3.2,0.8)--(4.2,3.8);
\draw[dashed] (0,0)--(3.2,0.8);
\draw[dashed] (3.2,0.8)--(7,1);
\draw [->, >={Stealth[round]}] (0,0)--(4,0.2);
\draw [->, >={Stealth[round]}] (0,0)--(3.2,0.8);
\draw [->, >={Stealth[round]}] (0,0)--(1,3);
\end{tikzpicture}