Tikz의 기능 플로팅 - 이 구멍은 어디에서 오는가?

Tikz의 기능 플로팅 - 이 구멍은 어디에서 오는가?

쌍곡선을 그리려고 하는데 어떤 이유에서인지 플롯에 구멍이 생기고 그 원인을 알 수 없습니다.

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw[blue!50!black] plot[domain=(1/sqrt(2)):2,smooth,thick,samples=100] (\x,{sqrt(2*(\x*\x)-1)});
\draw[blue!50!black] plot[domain=-2:(-1/sqrt(2)),smooth,thick,samples=100] (\x,{sqrt(2*(\x*\x)-1)});

\draw[blue!50!black] plot[domain=(1/sqrt(2)):2,smooth,thick,samples=100] (\x,{-sqrt(2*(\x*\x)-1)});
\draw[blue!50!black] plot[domain=-2:(-1/sqrt(2)),smooth,thick,samples=100] (\x,{-sqrt(2*(\x*\x)-1)});
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

답변1

공백이 발생하는 이유에 대한 답변은 다음과 같습니다.

LaTeX는 컴퓨터 대수학 시스템이 아니기 때문입니다.

그래서 우리는 Ti를 도와야 해요케이Z 옳은 일을 하세요. 어쨌든 부드럽고 연속적인 곡선을 원한다면 각 구성 요소를 한 번에 그리는 것이 좋습니다. 이는 다음과 같은 다른 매개변수화를 선택하여 달성할 수 있습니다.

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw[blue!50!black] plot[domain=-2:2,smooth,thick,samples=101]
 ({(1/sqrt(2))+abs(\x)},{sign(\x)*sqrt(2*\x*\x+2*sqrt(2)*abs(\x))});
\draw[blue!50!black] plot[domain=-2:2,smooth,thick,samples=101]
 ({-(1/sqrt(2))-abs(\x)},{sign(\x)*sqrt(2*\x*\x+2*sqrt(2)*abs(\x))});
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

아마도 훨씬 더 간단한 재매개변수화는 다음과 같습니다.

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw[blue!50!black] plot[domain=-4:4,smooth,thick,samples=101]
 ({sqrt(1/2+\x*\x/2)},\x);
\draw[blue!50!black] plot[domain=-4:4,smooth,thick,samples=101]
 ({-sqrt(1/2+\x*\x/2)},\x);
\end{tikzpicture}
\end{document}

답변2

이와 같은 것이 사용될 수 있습니다

\documentclass{standalone} % or whatever
\usepackage{tikz,pgfplots}
\begin{document}

\begin{tikzpicture}

  \begin{axis}[
    xmin=-2,
    xmax=2,
    samples=101,
    unbounded coords=jump,
    axis lines=middle,
    ]
    \begin{scope}[
      domain=-2:-1/sqrt(2),
      ]
      \addplot[smooth] {sqrt(2*(\x*\x)-1)};
      \addplot[smooth] {-sqrt(2*(\x*\x)-1)};
    \end{scope}
    \begin{scope}[
      domain=1/sqrt(2):2,
      ]
      \addplot[smooth] {sqrt(2*(\x*\x)-1)};
      \addplot[smooth] {-sqrt(2*(\x*\x)-1)};
    \end{scope}
  \end{axis}
\end{tikzpicture}
\end{document}

실제로는 다음과 같이 할 수 있습니다.

\addplot [domain=-2:2] {sqrt(2*(\x*\x)-1)};

윗부분을 위해. 그냥 자동으로 됩니다. 그러나 우리는 구멍을 얻습니다. 나는 어딘가에 옵션이 있다고 가정합니다. 여기서 우리는 플롯을 작성 -2:2하고 추가로 평가하도록 지시할 수 있습니다.+- 1/sqrt(2)

답변3

가장 쉬운 해결책은 간격 위에 연결선을 그리는 것입니다.

\documentclass{standalone}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw[blue!50!black] plot[domain=2:(1/sqrt(2)),smooth,thick,samples=100] (\x,{sqrt(2*(\x*\x)-1)}) --
  plot[domain=(1/sqrt(2)):2,smooth,thick,samples=100] (\x,{-sqrt(2*(\x*\x)-1)});

\draw[blue!50!black] plot[domain=-2:(-1/sqrt(2)),smooth,thick,samples=100] (\x,{sqrt(2*(\x*\x)-1)}) --
  plot[domain=(-1/sqrt(2)):-2,smooth,thick,samples=100] (\x,{-sqrt(2*(\x*\x)-1)});
\end{tikzpicture}
\end{document}

데모

관련 정보