
z=x^2+y^2
간격을 두고 싶습니다 0<z<9
. 그래서 일반적으로 나는 단지 명령 pgfplots
과 함께 사용하고 addplot3
있으며 너무 많은 문제를 일으키지 않는 직사각형 도메인에 대해 사용했습니다. 예(fromTikZ에서 쌍곡선 포물면과 같은 선직면을 그리는 쉬운 방법이 있습니까?):
그러나 내 경우에는 포물면을 그리고 싶고 곡선의 가장자리가 평면 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 값이 가 아니기 때문에 포물면이 전혀 인쇄되지 않습니다 . 오히려 각 좌표 쌍(x,y)에 따라 달라지며 z=9
아래 값에 가깝습니다 .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}