2024年6月30日日曜日

TikZのカメ

マインドマップからの続き

去年,Chat GPTは,日本語を解釈してSVGやTikZで稚拙ながらそれらしいイメージを出力することができた。あれから1年,この度のClaude 3.5 Sonnetではどうか試してみた。まあ,少しだけ進歩しているかもしれない。

Q(koshix):
latexのtikzコマンドで、カメのイメージをなるべくリアルに描画するコマンドを示してください
Q(koshix):
亀の甲羅の模様を六角にして,手足には爪をつけて,しっぽはスルリと細く短くなるようにできますか?
Q(koshix):
以下の部分でエラーが出ました。
\foreach \x in {-1,0,1}
  \foreach \y in {-0.75,0,0.75}
    \draw[green!30!black, thick] (\x,\y) hexagon (0.5);

A(Claude 3.5 Sonnet):
申し訳ありません。エラーが発生したのは、hexagon コマンドが標準のTikZには定義されていないためです。このエラーを修正し、六角形を描画する別の方法を使用しましょう。

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

% カメの体(甲羅)
\fill[green!50!black] (0,0) ellipse (2 and 1.5);

% 頭
\fill[green!70!black] (2.3,0) ellipse (0.5 and 0.4);

% 目
\fill[black] (2.6,0.1) circle (0.05);

% 足と爪
\begin{scope}
  \clip (-1.5,-1.2) ellipse (0.4 and 0.3);
  \fill[green!70!black] (-1.5,-1.2) ellipse (0.4 and 0.3);
  \fill[brown] (-1.7,-1.4) -- (-1.6,-1.5) -- (-1.5,-1.4) -- (-1.4,-1.5) -- (-1.3,-1.4) -- cycle;
\end{scope}

\begin{scope}
  \clip (-0.5,-1.4) ellipse (0.4 and 0.3);
  \fill[green!70!black] (-0.5,-1.4) ellipse (0.4 and 0.3);
  \fill[brown] (-0.7,-1.6) -- (-0.6,-1.7) -- (-0.5,-1.6) -- (-0.4,-1.7) -- (-0.3,-1.6) -- cycle;
\end{scope}

\begin{scope}
  \clip (0.5,-1.4) ellipse (0.4 and 0.3);
  \fill[green!70!black] (0.5,-1.4) ellipse (0.4 and 0.3);
  \fill[brown] (0.3,-1.6) -- (0.4,-1.7) -- (0.5,-1.6) -- (0.6,-1.7) -- (0.7,-1.6) -- cycle;
\end{scope}

\begin{scope}
  \clip (1.5,-1.2) ellipse (0.4 and 0.3);
  \fill[green!70!black] (1.5,-1.2) ellipse (0.4 and 0.3);
  \fill[brown] (1.3,-1.4) -- (1.4,-1.5) -- (1.5,-1.4) -- (1.6,-1.5) -- (1.7,-1.4) -- cycle;
\end{scope}

% 尻尾(より細く短く)
\fill[green!70!black] (-2.1,0) .. controls (-2.3,0.1) and (-2.3,-0.1) .. (-2.1,-0.1) -- cycle;

% 甲羅の六角形の模様(修正版)
\foreach \x in {-1,0,1}
  \foreach \y in {-0.75,0,0.75} {
    \draw[green!30!black, thick] 
      (\x+0.5*0.866,\y+0.25) -- 
      (\x+0.5*0.866,\y-0.25) -- 
      (\x,\y-0.5) -- 
      (\x-0.5*0.866,\y-0.25) -- 
      (\x-0.5*0.866,\y+0.25) -- 
      (\x,\y+0.5) -- cycle;
  }

\end{tikzpicture}
\end{document}

この修正版では、以下の変更を行いました:
1.hexagon コマンドの代わりに、六角形を直接描画するコードを使用しています。これは6つの点を指定して六角形を描くものです。
2.六角形のサイズと位置を調整して、カメの甲羅に合うようにしました。
3.その他の部分(体、頭、目、足、爪、尻尾)は前回のバージョンと同じままです。

この修正により、エラーなくコンパイルできるはずです。六角形の模様が甲羅全体に広がり、カメらしい外観を作り出しています。
コードをコンパイルして問題がないか確認してください。もし他に問題が発生したり、さらに調整したい部分があれば、お知らせください。例えば、六角形のサイズや配置を微調整したり、色を変更したりすることも可能です。

図:Claude 3.5 Sonnet が持っているカメのイメージ,修正前と修正後


0 件のコメント: