pgfplots에서 제어점을 사용하여 베지어 곡선을 만드는 방법

pgfplots에서 제어점을 사용하여 베지어 곡선을 만드는 방법

제어점이 있는 베지어 곡선을 만들고 싶습니다. pgfplots 매뉴얼에서 내가 원하는 것을 찾는 데 성공하지 못했습니다. 누군가가 나를 도울 수 있기를 바랐습니다.

내가 하고 싶은 일은 베지어 곡선과 제어점을 사용하여 정의된 조각별 조각을 결합하여 곡선을 만드는 것입니다. 이것은 미적분학 학생들을 위한 그래프를 만들기 위한 것입니다. 여기서 함수 그래프를 제공하면 학생들은 도함수 그래프를 만들어야 합니다. 그래서 변곡점, 극한점 등을 정확하게 제어할 수 있으면 좋겠습니다....

여기에 예가 있지만 무슨 일이 일어나고 있는지, 왜 포인트가 연결된 순서대로 연결되었는지 전혀 알 수 없습니다.

\documentclass[border=6pt]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{patchplots}
\begin{document}

\begin{tikzpicture}
\begin{axis}[nodes near coords={(\coordindex)},
title={\texttt{patch type=cubic spline}}]
\addplot[
        mark=*,
        patch,
        patch type=cubic spline]
        coordinates {
        (2,2)        [0]
        (0,2)        [0]
        (2,0)        [0]
        (0,0)        [1]
};
\end{axis}
\end{tikzpicture}

\end{document}

내가 읽은 내용에 따르면 태그가 제어점을 정의하는 데 도움이 될 것이라는 것이 이해되었습니다 [0]. 나는 이 곡선이 제어점인 곳 에서 S시작 (2,2)하고 끝나는 모양 처럼 보일 것이라고 예상했습니다 .(0,0)(0,2)(2,0)

나는 다음과 같은 방법으로 이 작업을 수행할 수 있다고 생각했습니다.

\documentclass[border=6pt]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{patchplots}
\begin{document}

\begin{tikzpicture}
\begin{axis}
    [nodes near coords={(\coordindex)},
     title={\texttt{patch type=cubic spline}}
    ]

   \draw (axis cs:2,2) .. controls (axis cs:0,2) and (axis cs:2,0) .. (axis cs:0,0);

\end{axis}

\end{tikzpicture}

\end{document}

그러나 pgfplots는 경계 상자에 대한 내 경로를 무시하는 것 같습니다.

답변1

기능이 patch type=cubic spline기대됩니다보간점, 즉 곡선 위에 있는 점입니다. 4개의 점을 통과(보간)하는 고유한 3차 스플라인을 선택합니다.

\draw ... controls <A> and <B> ..베지어 그리기 작업을 위한 TikZ 명령이며 예상한 작업을 수행합니다.

pgfplots에서는 내부 좌표만 \addplot ...;축 제한에 영향을 줍니다.

두 가지 선택이 있는 것처럼 들립니다.

  1. pgfplots또는와 함께 보간 기반을 사용하려면
  2. \draw .. controls ..(그런데 연결될 수 있음) 순수한 tikz 솔루션에 의존합니다 .

해결책 2. pgfplots 축 내부에 그릴 수 있습니다. 이 경우 xmin=-1,xmax=3,ymin=-1,ymax=3다음과 같은 것을 사용하여 축 제한을 지정해야 합니다.

\documentclass[border=6pt]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{patchplots}

% 1.11 does not need "axis cs:", i.e. (axis cs:2,2) is equivalent to (2,2)
\pgfplotsset{compat=1.11}
\begin{document}

\begin{tikzpicture}
\begin{axis}
    [
    title={\texttt{patch type=cubic spline}},
    xmin=-1,xmax=3,ymin=-1,ymax=3,
    ]


   \draw (2,2) .. controls (0,2) and (2,0) .. (0,0);

    \node at (2,2) {$0$};
    \node at (0,2) {$1$};
    \node at (2,0) {$2$};
    \node at (0,0) {$3$};

\end{axis}
\end{tikzpicture}

\end{document}

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

관련 정보