
tikzのドキュメントの2番目のチュートリアルを読み、いくつかのプロセスを反復するためにforeach文の中で\xを使う方法を学びました。しかし、\xはforeach文なしでも使えることを知りました。別のスレッドほとんど簡略化して、次のようになりました。
\documentclass[tikz,border=10]{standalone}
\begin{document}
\begin{tikzpicture}[scale=3,very thick]
\draw[samples=500] plot (canvas polar
cs:angle=\x r,radius={50-10*sin(10*\x r)}); %50 and 10 in 50 - 10 ... control the sharpness of each curve, 10 in sin(x) controls number of curves
\end{tikzpicture}
\end{document}
次の画像が生成されます:
しかし、\x がとることができる値の範囲を決定する \foreach ... in {1,...,5) ステートメントのようなものがないので、このコードで \x が何をしているのか理解できません。では、\x はこの波線の生成にどのように貢献し、このようなステートメントで一般的にどのように機能しているのでしょうか。また、なぜその後に r が続くのでしょうか。r は \x がとる値を乗算する数値を表しているのでしょうか。
答え1
非常に興味深い例です。何百ページものマニュアルをただあなたに投げつけるのではなく、pgfマニュアル は非常に有益です。
そこには以下があります:
関数のプロット
関数をプロットする場合、プロットデータの座標は数式を評価することで計算できます。pgfには数学エンジンが付属しているので、この数式を指定すると、TikZが自動的に希望の座標を生成します。関数をプロットする場合、このケースは非常によくあるので、構文は簡単です。プロットコマンドとそのローカルオプションに続いて、直接(座標表現)通常の座標のように見えますが、内部では特別なマクロを使用することができます。これは\x
デフォルトで有効になっていますが、変数オプションを使用して変更できます。(座標表現)次に、異なる値に対して評価され\x
、結果の座標がプロットされます。
[...]
/tikz/domain=<start>:<end>
(デフォルトなし、初期値は -5:5)
サンプルを取得するドメインを設定します
数式の構文: 演算子
バツr
: x を度に変換します (x はラジアンであると想定されます)。
*180/3.14
(基本的に私のコメントと同じです)
つまり、基本的にこのコード スニペットは -5:5 の範囲から 500 個のサンプルを抽出し、これらの値をラジアン単位の極座標角度として取得します。次に、50-10*sin(10*<angle converted to degrees>)
各サンプルの半径を計算します。これらのポイントを通る線を描画します。