
z=x^2+y^2
区間 に描画したいのですが、通常はコマンド を0<z<9
使っています。長方形の領域ではそれほど問題にはならないようです。例 (pgfplots
addplot3
TikZ で双曲放物面のような線織面を描く簡単な方法はありますか?):
しかし、私の場合は放物面を描きたいので、曲線の端が平面r=3
内にあるようにしたいのですz=9
。私の最初の試みは次のようなものでした (前の質問から改変):
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9] {x^2+y^2};
\end{axis}
\end{tikzpicture}
\end{document}
z=9
明らかに、ドメインによって問題が発生します。評価された最後の z 値が ではなく、 より下のどこかに近い値であり、座標 (x,y) のペアごとに異なるため、放物面はまったくきれいに印刷z=9
されません。
を設定することもできますsamples y=300
が、コンパイル時間が異常に長くなります。また、スタック サイズを大量に消費するため、ドキュメントの可能性が制限されます。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9,samples y=300] {x^2+y^2};
\end{axis}
\end{tikzpicture}
\end{document}
もっと良い方法はあるのではないでしょうか?
答え1
percusse がコメントで述べたように、極座標を使用できます。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9, data cs=polar, domain=0:360, y domain=0:3] (x, y, y^2);
\end{axis}
\end{tikzpicture}
\end{document}