Я создал следующий рисунок:
В этом сегменте:
\documentclass[a4paper,12pt]{article}
\usepackage{parskip}
\usepackage{amssymb}
\usepackage[fleqn]{amsmath}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{fadings}
\setlength{\mathindent}{0pt}
\usepackage{color}
\usepackage{fixltx2e}
\usepackage{pgfplots}
\usepackage{graphicx}
\newcommand{\func}[1]{\operatorname{#1}}
\newcommand{\var}[1]{\mathit{#1}}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=0.9]
\draw[->] (-6,0) -- (5,0) node[right] {$x$};
\draw[->] (-5,-1) -- (-5,5) node[above] {$y$};
\draw (-2.5,1.5) circle (1cm) node[xshift=30, yshift=20] {$R_1$};
\draw (1.5,3) circle (1.5cm) node[xshift=40, yshift=30] {$R_2$};
\draw [decorate,decoration={brace}]
(-5.2,1.5) -- (-5.2,2.5) node [black,midway, xshift=-0.4cm]
{\footnotesize \rotatebox{90}{$\exists x R_1\cap \exists x R_2$}};
\draw[thick,purple] (-5,1.5) -- (-5,2.5);
\fill[opacity=0.5, color=purple, path fading=east] (-5,1.5) rectangle (6,2.5);
\fill[opacity=0.5, color=purple, path fading=west] (-5.3,1.5) rectangle (-5,2.5);
\end{tikzpicture}
\end{center}
\end{document}
Теперь рассмотрим окружность R_2. Я хочу отметить часть ее, которая находится внутри цветной области, фиолетовым цветом.
Я вычислил точку, в которой периметр окружности пересекается с краем цветной области, и нашел, что это (2.91,2.5). Поэтому я попытался добавить дугу. Но это не пошло...
Вот дополнение:
\documentclass[a4paper,12pt]{article}
\usepackage{parskip}
\usepackage{amssymb}
\usepackage[fleqn]{amsmath}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{fadings}
\setlength{\mathindent}{0pt}
\usepackage{color}
\usepackage{fixltx2e}
\usepackage{pgfplots}
\usepackage{graphicx}
\newcommand{\func}[1]{\operatorname{#1}}
\newcommand{\var}[1]{\mathit{#1}}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=0.9]
\draw[->] (-6,0) -- (5,0) node[right] {$x$};
\draw[->] (-5,-1) -- (-5,5) node[above] {$y$};
\draw (-2.5,1.5) circle (1cm) node[xshift=30, yshift=20] {$R_1$};
\draw (1.5,3) circle (1.5cm) node[xshift=40, yshift=30] {$R_2$};
\draw [decorate,decoration={brace}]
(-5.2,1.5) -- (-5.2,2.5) node [black,midway, xshift=-0.4cm]
{\footnotesize \rotatebox{90}{$\exists x R_1\cap \exists x R_2$}};
\draw[thick,purple] (-5,1.5) -- (-5,2.5);
\fill[opacity=0.5, color=purple, path fading=east] (-5,1.5) rectangle (6,2.5);
\fill[opacity=0.5, color=purple, path fading=west] (-5.3,1.5) rectangle (-5,2.5);
% addition here!
\draw[thick, color=purple] (2.91,2.5) arc[radius = 1.5cm, start angle= 0, end angle= -140];
\end{tikzpicture}
\end{center}
\end{document}
Это добавление не нарисовало дугу точно на окружности R_2:
Какие бы значения я ни использовал, мне не удалось расположить эту дугу точно по периметру круга...
Надеюсь, мой пост достаточно ясен, так как я не владею английским языком.
Заранее спасибо.
решение1
Вам нужно выбрать правильные углы для дуги. Но проще всего обрезать
% addition here!
\begin{scope}
\clip (-5,1.5) rectangle (6,2.5);
\draw[thick, color=purple] (1.5,3) circle (1.5cm);
\end{scope}
Код:
\documentclass[a4paper,12pt]{article}
%% why so many packages for a MWE?
\usepackage{parskip}
\usepackage{amssymb}
\usepackage[fleqn]{amsmath}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{fadings}
\setlength{\mathindent}{0pt}
\usepackage{color}
\usepackage{fixltx2e}
\usepackage{pgfplots}
\usepackage{graphicx}
\newcommand{\func}[1]{\operatorname{#1}}
\newcommand{\var}[1]{\mathit{#1}}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=0.9]
\draw[->] (-6,0) -- (5,0) node[right] {$x$};
\draw[->] (-5,-1) -- (-5,5) node[above] {$y$};
\draw (-2.5,1.5) circle (1cm) node[xshift=30, yshift=20] {$R_1$};
\draw (1.5,3) circle (1.5cm) node[xshift=40, yshift=30] {$R_2$};
\draw [decorate,decoration={brace}]
(-5.2,1.5) -- (-5.2,2.5) node [black,midway, xshift=-0.4cm]
{\footnotesize \rotatebox{90}{$\exists x R_1\cap \exists x R_2$}};
\draw[thick,purple] (-5,1.5) -- (-5,2.5);
\fill[opacity=0.5, color=purple, path fading=east] (-5,1.5) rectangle (6,2.5);
\fill[opacity=0.5, color=purple, path fading=west] (-5.3,1.5) rectangle (-5,2.5);
% addition here!
\begin{scope}
\clip (-5,1.5) rectangle (6,2.5);
\draw[thick, color=purple] (1.5,3) circle (1.5cm);
\end{scope}
\end{tikzpicture}
\end{center}
\end{document}
С дугой, что-то вроде
% addition here!
\draw[thick, color=purple] (2.91,2.5) arc[radius = 1.5cm, start angle= -20, end angle= -160];
должно дать вам дугу на окружности.
решение2
Углы можно легко рассчитать, используя аннотированный прямоугольный треугольник:
\documentclass[a4paper,12pt]{article}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{fadings}
\usetikzlibrary{decorations, decorations.pathreplacing}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=0.9]
\draw[->] (-6,0) -- (5,0) node[right] {$x$};
\draw[->] (-5,-1) -- (-5,5) node[above] {$y$};
\draw (-2.5,1.5) circle (1cm) node[xshift=30, yshift=20] {$R_1$};
\draw (1.5,3) circle (1.5cm) node[xshift=40, yshift=30] {$R_2$};
\draw [decorate,decoration={brace}]
(-5.2,1.5) -- (-5.2,2.5) node [black,midway, xshift=-0.4cm]
{\footnotesize \rotatebox{90}{$\exists x R_1\cap \exists x R_2$}};
\draw[thick,purple] (-5,1.5) -- (-5,2.5);
\fill[opacity=0.5, color=purple, path fading=east] (-5,1.5)
rectangle (6,2.5);
\fill[opacity=0.5, color=purple, path fading=west] (-5.3,1.5)
rectangle (-5,2.5);
% addition here!
% \draw[thick, color=purple] (2.91,2.5) arc[radius = 1.5cm, start
% angle= 0, end angle= -140];
\pgfmathsetmacro\angle{acos(1/3)}
\draw[thick, color=purple, radius=1.5cm]
(1.5, 3) ++(270-\angle:1.5cm) coordinate (start)
arc[start angle=270-\angle, end angle=270+\angle];
\draw[thin, node font=\scriptsize]
(1.5, 3) node[above] {acos(0.5/1.5)}
-- node[right] {0.5} (1.5, 2.5)
-- (start) -- node[above left] {1.5} cycle;
\end{tikzpicture}
\end{center}
\end{document}
решение3
Вот как реализовать более общий и простой подход к обрезке в Metapost.
(Я не включил выцветание и подпорку, но их можно было бы добавить, приложив немного больше усилий.)
prologues := 3;
outputtemplate := "%j%c.eps";
beginfig(1);
color purple; purple = 3/4 red + 1/4 blue;
path xx, yy, r[], band;
u = 1cm;
xx = (left -- 10 right) scaled u;
yy = (down -- 5 up) scaled u;
r1 = fullcircle scaled 2u shifted (2.5u,1.5u);
r2 = fullcircle scaled 3u shifted (6.5u,3u);
band = unitsquare xscaled 10u yscaled (ypart point 2 of r1 - ypart point 6 of r2)
shifted (-1/4u, ypart point 6 of r2);
fill band withcolor .85[purple,white];
label.lft(btex $\exists x R_1 \cap \exists x R_2$ etex rotated 90, point 3.5 of band);
draw r1; label.lrt(btex $R_1$ etex, point 7 of r1);
draw r2; label.urt(btex $R_2$ etex, point 1 of r2);
drawarrow xx; label.rt (btex $x$ etex, point 1 of xx);
drawarrow yy; label.top(btex $y$ etex, point 1 of yy);
picture overlay;
overlay = image(
drawoptions(withcolor purple);
% draw r1; <--- you could add this one too if you wanted
draw r2;
draw yy;
drawoptions();
);
clip overlay to band; draw overlay;
endfig;
end.
Преимущество такого подхода в том, что красная дуга автоматически рисуется правильно при перемещении любого из кругов, и никаких вычислений не требуется.
Полезно знать, что в простой МП прямая линия начинается в точке 0 и идет к точке 1, а на окружности в простой МП есть 8 «точек» с точкой 0 в положении 3 часа, например: