Daiji256

ヒードランは、十字のツメを食いこませてTeXやTikZを這い回る。

公開
更新

はじめに

先日(2021-02-27)にポケットモンスターダイヤモンド・パールのリメイクのブリリアントダイヤモンド・シャイニングパールが発表されました。15年間もヒードランは壁や天井を這い回っていました。たまには他の場所も這い回りたいことでしょう。ここではヒードランにTeXとTikZ1を這い回ってもらいます。

基礎知識

前提となる基礎知識は以下のリンクを参考にしてください。

TeXを這い回る

まずはTeXを這い回ってもらいます。ただヒードランの画像を\includegraphicsによって貼り付けるだけです2。

\includegraphics[scale=4]{Heatran.png}

TeXを這い回るヒードラン

TikZを這い回る

TeXを這い回るだけでは面白くありません。なのでTikZでドット絵を描いて這い回ってもらいます。ドット絵は大量の四角で描きます。枠無しで色を塗ると環境によっては隙間が見えてしまうため、太さthinの枠を設定しています。Y軸は下が正になっているので、マイナスにしています。

\begin{tikzpicture}
    \draw [thin,fill,color={rgb,255:red,R;green,G;blue,B}] (X,-Y) rectangle (X+1,-Y-1);
\end{tikzpicture}

手作業で全ドットを描いたら大変なので、PythonとOpenCVにやってもらいましょう。背景のドットは無視します。後は全画素に応じてカラーコードの設定と座標の設定をしています。当たり前ですけど、見た目は変わりません。

img = cv2.imread(sys.argv[1], cv2.IMREAD_UNCHANGED)

print("\\begin{tikzpicture}")
for i in range(img.shape[1]):
    for j in range(img.shape[0]):
        if img[i,j,3] == 0:
            continue
        print(
            '\t\\draw [thin,fill,color={{rgb,255:red,{};green,{};blue,{}}}] ({},{}) rectangle ({},{});'.format(
                img[i,j,2], img[i,j,1], img[i,j,0], j, -i, j+1, -i-1
            )
        )
print("\\end{tikzpicture}")

TikZを這い回るヒードラン

まとめ

ヒードランが壁と天井以外を這い回りました。リメイク作品でもゴキゴキしてるか楽しみです。

文献

  1. ソースコード
  2. TeX
  3. TikZ/PGF
  4. ヒードラン

脚注

  1. TikZと表示すべきだけど、タイトルと統一するためにローマン体にしています。 ↩

  2. SVGの表示がうまくいっていないかもしれません。 ↩