
Невозможно выделить часть пересечения эллипса и линии с помощью \clip
команды, пожалуйста, помогите с этим. Здесь я хочу заполнить область ABCD, пожалуйста, помогите, спасибо
\documentclass{article}
\usepackage{tikz,pgfplots}
%\usepackage[x11names]{xcolor}
\usepackage{tikz}
\usetikzlibrary{intersections}
\usepackage{pgfplots}\pgfplotsset{compat=newest}
\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 (0,-2)--(0,3);
\draw (-4,0)--(5,0);
\draw (0,0)node(o){O} (0,1)[left]node(c){C} (0,-1)node(d){D};
\draw(0,0)circle[x radius = 3 cm , y radius = 1 cm]; % DRAW ELLIPSE
\draw (1,-1)[below]node(a){A}--(1,1)[above]node(b){B};
\clip(0,0)circle[x radius = 3 cm , y radius = 1 cm];
\fill[black] (0cm,0cm) rectangle (4cm,6cm);
\draw (0,0)node(o){O} (0,1)[left]node(c){C};
\end{tikzpicture}
\end{document}
решение1
Хотите что-то вроде этого? Причина, по которой вы не получаете никакого видимого результата, заключается в том, что вы заполняете прямоугольник нулевой ширины.
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,-2)--(0,3);
\draw (-4,0)--(5,0);
\draw(0,0)circle[x radius = 3 cm , y radius = 1 cm]; % DRAW ELLIPSE
\draw (1,-1)[below]node(a){A}--(1,1)[above]node(b){B};
\clip(0,0)circle[x radius = 3 cm , y radius = 1 cm];
\draw[blue,thick] (a) -- (b);
\end{tikzpicture}
\end{document}
Что касается вашего обновленного вопроса, вы определяете точки a
, b
, c
и d
как узлы, которые являются расширенными объектами. Вот почему путь, соединяющий эти точки, имеет пробелы, так что он fill
терпит неудачу. Чтобы избежать этого, используйте coordinate
узлы типа с метками.
\documentclass{article}
\usepackage{tikz}
\pgfdeclarelayer{bg}
\pgfsetlayers{bg,main}
\begin{document}
\begin{tikzpicture}
\draw (0,-2) -- (0,3);
\draw (-4,0) -- (5,0);
\draw (0,0)circle[x radius = 3 cm , y radius = 1 cm]; % DRAW ELLIPSE
\draw (1,-1)coordinate[label=below:$A$](a)
-- (1,1)coordinate[label=above:$B$](b);
\draw (0,0)coordinate[label=below left:$O$](o)
(0,1)coordinate[label=left:$C$](c)
(0,-1)coordinate[label=below:$D$](d);
\begin{pgfonlayer}{bg}
\clip (0,0) circle[x radius = 3 cm , y radius = 1 cm];
\fill[blue] (a) -- (b) -- (c) -- (d) -- cycle;
\end{pgfonlayer}
\end{tikzpicture}
\end{document}