$x^2+y^2=2x 교차 영역을 강조 표시할 수 없습니다. tikz를 사용하는 x=y^2$

$x^2+y^2=2x 교차 영역을 강조 표시할 수 없습니다. tikz를 사용하는 x=y^2$

$x^2+y^2=2x ; x=y^2$를 사용 하여 교차 영역을 강조 표시할 수 없습니다 TikZ. 아래에서 언급한 것처럼 을 사용하여 두 가지 다른 코드를 시도했습니다 pgfonlayer. 하나는 실행 중이지만 출력은 삼각형 형태로 음영을 채우는 것으로 출력되고, 다른 하나는 실행되지 않습니다. 이는 아래 주석에 표시되어 있습니다. .

도와주세요... 감사합니다

\documentclass{article}
\usepackage{tikz,pgfplots}
%\usepackage[x11names]{xcolor}
\usepackage{tikz}
\usetikzlibrary{intersections}
\pgfdeclarelayer{bg}    % declare background
\pgfsetlayers{bg,main}  % order of layers (main = standard layer)
\pgfplotsset{compat=1.13}
\usepackage{amsmath}
\usetikzlibrary{positioning}





\begin{document}




\begin{tikzpicture}


\draw(1,0)circle(1cm); % DRAW CIRCLE
\draw[blue,line width = 0.50mm]   plot[smooth,domain= -2:2,variable=\y]
( {(\y)^2},\y); 
\draw (-2,0)--(4,0) (0,-2)--(0,4);
\draw(1,1)node(a){A}--(1,0)node(c){C};
\draw(2,0)node(b){B}--(0,0)node(o){O};


\begin{pgfonlayer}{bg}    % select background
\path [fill=blue!50] (o.center) --(a.center) --(b.center) -- cycle;

\end{pgfonlayer}

I have tried the following code as well, but it is showing some error, please help. 
%   \begin{pgfonlayer}{bg}    % select background
%   \clip plot[smooth,domain=0:2] (\sqrt{1-(x-1)^2}, \x);
%   \fill[red]  plot[smooth,domain= -2:2,variable=\y] ({(\y)^2},\y);
%   \end{pgfonlayer}
\end{tikzpicture}

\end{document}

답변1

\fill명령은 폐쇄된 영역(예: )에서만 작동할 수 있습니다 (0, 0) -- (1, 1) -- (1, 2) -- (0, 0). 닫히지 않은 좌표 목록을 제공하면 (0, 0) -- (1, 1) -- (1, 2)마지막 좌표와 첫 번째 좌표를 자동으로 연결하여 닫힌 좌표 목록을 형성한다고 가정해 보겠습니다. pgf 매뉴얼, Sec를 참조하세요. 15.5.

귀하의 예에서는 에서 시작 하고 끝나는 \fill[red] plot[smooth,domain= -2:2,variable=\y] ({(\y)^2},\y);좌표 목록을 형성합니다 . 그래서 tikz는 이 두 좌표를 연결하여 닫힌 영역을 형성한 다음 이를 채웁니다.(4, -2)(4, 2)

귀하의 예를 들어,

\documentclass{article}
\usepackage{tikz,pgfplots}
\usepackage{tikz}
\usetikzlibrary{intersections}
\pgfdeclarelayer{bg}    % declare background
\pgfsetlayers{bg,main}  % order of layers (main = standard layer)
\pgfplotsset{compat=1.13}
\usepackage{amsmath}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
\draw(1,0)circle(1cm); % DRAW CIRCLE
\draw[blue,line width = 0.50mm]   plot[smooth,domain= -2:2,variable=\y]
( {(\y)^2},\y); 
\draw (-2,0)--(4,0) (0,-2)--(0,4);
\draw(1,1)node(a){A}--(1,0)node(c){C};
\draw(2,0)node(b){B}--(0,0)node(o){O};


\begin{pgfonlayer}{bg}    % select background
  \path [fill=blue!50] (o.center) --(a.center) --(b.center) -- cycle;
\end{pgfonlayer}

\begin{pgfonlayer}{bg}    % select background
 \fill[red]  
    plot[smooth,domain=0:1,variable=\y] ({(\y)^2},\y)  % (0, 0) to (1, 1)
    arc[start angle=90, end angle=180, radius=1];      % (1, 1) to (0, 0), hence closed
 \fill[red]  
    plot[smooth,domain=0:-1,variable=\y] ({(\y)^2},\y) % (0, 0) to (1, -1)
    arc[start angle=270, end angle=180, radius=1];     % (1, -1) to (0, 0), hence closed
\end{pgfonlayer}
\end{tikzpicture}

\end{document}

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

업데이트

영역을 채우려면 O-(x=y^2)-A-(circle)-B-(line)-O:

\documentclass{article}
\usepackage{tikz,pgfplots}
\usepackage{tikz}
\usetikzlibrary{intersections}
\pgfdeclarelayer{bg}    % declare background
\pgfsetlayers{bg,main}  % order of layers (main = standard layer)
\pgfplotsset{compat=1.13}
\usepackage{amsmath}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
\draw(1,0)circle(1cm); % DRAW CIRCLE
\draw[blue,line width = 0.50mm]   plot[smooth,domain= -2:2,variable=\y]
( {(\y)^2},\y); 
\draw (-2,0)--(4,0) (0,-2)--(0,4);
\draw(1,1)node(a){A}--(1,0)node(c){C};
\draw(2,0)node(b){B}--(0,0)node(o){O};


\begin{pgfonlayer}{bg}    % select background
  \path [fill=blue!50] (o.center) --(a.center) --(b.center) -- cycle;
\end{pgfonlayer}

\begin{pgfonlayer}{bg}    % select background
 \fill[red]  
    plot[smooth,domain=0:1,variable=\y] ({(\y)^2},\y) % (0, 0) to (1, 1)
    arc[start angle=90, end angle=0, radius=1];       % (1, 1) to (2, 0)
                                      % tikz auto links (2, 0) and (0, 0)
\end{pgfonlayer}
\end{tikzpicture}

\end{document}

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

답변2

이전 질문에 대한 내 대답을 고려하십시오. 즉, pgfplots.fillbetweenlibrary 및 extra 사용 positioning, 다음 MWE가 귀하에게 허용되는지 확인하십시오.

\documentclass[margin=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{backgrounds,
                pgfplots.fillbetween,
                intersections,
                positioning
                }

\begin{document}
    \begin{tikzpicture}[%scale = 0.75, 
dot/.style={circle,fill,inner sep=1pt}
                        ]
\draw (-0.5,0) -- (4,0.0);
\draw (0,-2.5) -- (0,2.5);

\draw[name path=A, blue!60, line width=0.5mm]   
    plot[domain= -2:2, smooth, variable=\y]   (\y*\y,\y);
\draw[name path=B]  (1,0) circle[radius=10mm];
\draw[name intersections={of=A and B, by={a,b,c}},
      densely dashed, very thin]    (c) node[above] {A} -- (b -| c)
                                        node[below] {C}
                                    (b) node[below left] {O};
\coordinate[right=2 of b, label=below:B] (B);
\scoped[on background layer]
{
\fill[blue!30] (b) -- (c) -- (B);
\clip (a) rectangle (b |- c);
\tikzfillbetween[of=A and B]{orange!30};
}
    \end{tikzpicture}
\end{document}

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

부록: 귀하의 의견으로 귀하의 질문이 완전히 바뀌게 됩니다. 이를 고려하면 가능한 해결책은 다음과 같습니다.

\documentclass[margin=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{backgrounds,
                intersections,
                positioning
                }

\begin{document}
    \begin{tikzpicture}[%scale = 0.75,
dot/.style={circle,fill,inner sep=1pt}
                        ]
\draw (-0.5,0) -- (4,0.0);
\draw (0,-2.5) -- (0,2.5);

\draw[name path=A, blue!60, line width=0.5mm]
    plot[domain= -2:2, smooth, variable=\y]   (\y*\y,\y);
\draw[name path=B]  (1,0) circle[radius=10mm];
\draw[name intersections={of=A and B, by={a,b,c}},
      densely dashed, very thin]    (c) node[above] {A} -- (b -| c)
                                        node[below] {C}
                                    (b) node[below left] {O};
\coordinate[right=2 of b, label=below:B] (B);

\scoped[on background layer]
{
\fill[orange!30]   
    plot[domain=0:1, smooth, variable=\y] (\y*\y,\y) arc(90:0:1);
}
    \end{tikzpicture}
\end{document}

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

관련 정보