⬜
tikz-3dplotで正二十面体を出力してみる
こんにちは、沙代です。
正多面体を出力したくなることってありますよね。実は前回の続きです。
MacOS Montery 12.6.2 (M1 Pro)
lualatex 1.15.0
tl;dr
main.tex
% lualatex main.tex
\documentclass[tikz,border=10pt]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{90}{30}
\begin{tikzpicture}[tdplot_main_coords,scale=3]
% Vertices of the icosahedron
\coordinate (A) at (0, 0, 1);
\coordinate (B) at (0.894, 0, 0.447);
\coordinate (C) at (0.276, 0.851, 0.447);
\coordinate (D) at (-0.724, 0.526, 0.447);
\coordinate (E) at (-0.724, -0.526, 0.447);
\coordinate (F) at (0.276, -0.851, 0.447);
\coordinate (G) at (0.724, 0.526, -0.447);
\coordinate (H) at (-0.276, 0.851, -0.447);
\coordinate (I) at (-0.894, 0, -0.447);
\coordinate (J) at (-0.276, -0.851, -0.447);
\coordinate (K) at (0.724, -0.526, -0.447);
\coordinate (L) at (0, 0, -1);
% Drawing edges
\draw[thick] (A) -- (B);
\draw[thick] (A) -- (C);
\draw[thick] (A) -- (D);
\draw[thick] (A) -- (E);
\draw[thick] (A) -- (F);
\draw[thick] (B) -- (C);
\draw[thick] (C) -- (D);
\draw[thick] (D) -- (E);
\draw[thick] (E) -- (F);
\draw[thick] (F) -- (B);
\draw[thick] (B) -- (G);
\draw[thick] (C) -- (G);
\draw[thick] (C) -- (H);
\draw[thick] (D) -- (H);
\draw[thick] (D) -- (I);
\draw[thick] (E) -- (I);
\draw[thick] (E) -- (J);
\draw[thick] (F) -- (J);
\draw[thick] (F) -- (K);
\draw[thick] (B) -- (K);
\draw[thick] (G) -- (H);
\draw[thick] (H) -- (I);
\draw[thick] (I) -- (J);
\draw[thick] (J) -- (K);
\draw[thick] (K) -- (G);
\draw[thick] (L) -- (G);
\draw[thick] (L) -- (H);
\draw[thick] (L) -- (I);
\draw[thick] (L) -- (J);
\draw[thick] (L) -- (K);
\end{tikzpicture}
\end{document}
コード解説
コードはChatGPTに生成させました!(ごめんなさい😞)
手打ちとか大変そうだったので、つい。。。
\usepackage{tikz-3dplot}
ここでパッケージを読み込んでいます。
\tdplotsetmaincoords{90}{30}
ここは視点を設定しています。後ほどいじってみます。
\coordinate
点の名前をつけます。(正二十面体は頂点は12個です)
\draw[thick]
点と点の間に線を引きます。(正二十面体は辺は30本です)
視点をいじる
\tdplotsetmaincoords{<elevation>}{<azimuth>}
- 高度角 (
<elevation>
)
- 定義: 視点がXY平面(水平面)からどれだけ上または下に向いているかを決定します。
- 範囲: 一般的に -90°から90°の範囲で設定します。
- 0°: 視点がXY平面に平行。Z軸方向からの高さがない状態。
- 90°: 視点が真上(Z軸正方向)から見下ろす。
- -90°: 視点が真下(Z軸負方向)から見上げる。
- 方位角 (
<azimuth>
)
- 定義: 視点がZ軸を中心にXY平面上で回転する角度を決定します。
- 範囲: 0°から360°までの範囲で設定します。
- 0°: 視点がX軸正方向からの方向。
- 90°: 視点がY軸正方向からの方向。
- 180°: 視点がX軸負方向からの方向。
- 270°: 視点がY軸負方向からの方向。
真上からでなく、もう少し斜めからみたいので、調整してみましょう。
調整前
\tdplotsetmaincoords{90}{30}
調整後
\tdplotsetmaincoords{45}{30}
美しいですね。。
Discussion