単純な曲線から境界まで伸びるプロット部分を表現しようとしていますが、2 つのパスの交差から閉じたパスを作成する簡単な方法が見つかりません。もっと複雑な例を見たことがあるのですが、交差を使用する簡単な方法があるはずですが、マニュアルには簡単そうな説明が見つかりません。MWE は下にありますが、必要なのは曲線と結合する塗りつぶしです。最終的には、x 軸に向かう 2 つの塗りつぶしが必要ですが、1 つから始めてもかまいません。ご提案があれば、ぜひお聞かせください。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (8,6);
\draw [name path=curve, very thick ] (0,4.5) to [out=-90,in=90] (8,0);
\draw [name path=top, very thick] (0,4.5) to (8,4.5) to (8,3) to (0,3);
\path [name intersections = {of=curve and top}];
\coordinate (A) at (intersection-1);
\coordinate (B) at (intersection-2);
\fill [green] (A)--(8,4.5)--(8,3) --(B) --(A);
\end{tikzpicture}
\end{document}
答え1
これがあなたが探しているものですか?ここでは、目的を達成するために「クリップ」テクニックのみを使用しています。あなたのコードの一部をマークしました。まずクリップ長方形を形成します
\clip (0,3) rectangle (8,4.5);
次に曲線領域が続く
\draw [fill=green,very thick ] (0,4.5) to [out=-90,in=90] (8,0) -- (8,4.5);
これら 2 つの領域の交差部分は緑色の形状になります。これらのコマンドはすべて、scope
環境内で制限される必要があります。
コード
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (8,6);
%\draw [name path=curve, blue,very thick ] (0,4.5) to [out=-90,in=90] (8,0);
%\draw [name path=top, red, very thick] (0,4.5) to (8,4.5) to (8,3) to (0,3);
%\path [name intersections = {of=curve and top}];
%\coordinate (A) at (intersection-1);
%\coordinate (B) at (intersection-2);
\begin{scope}
\clip (0,3) rectangle (8,4.5);
\draw [fill=green,very thick ] (0,4.5) to [out=-90,in=90] (8,0) -- (8,4.5);
\end{scope}
\draw [very thick ] (0,4.5) to [out=-90,in=90] (8,0);
\draw [very thick] (0,4.5) to (8,4.5) to (8,3) to (0,3);
\end{tikzpicture}
\end{document}
はい、とてもうまくいきました。ありがとうございます。これが私が求めていたものなので、さらに 2 つのスコープを追加しました。次のようになります。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (8,6);
%\draw [name path=curve, blue,very thick ] (0,4.5) to [out=-90,in=90] (8,0);
%\draw [name path=top, red, very thick] (0,4.5) to (8,4.5) to (8,3) to (0,3);
%\path [name intersections = {of=curve and top}];
%\coordinate (A) at (intersection-1);
%\coordinate (B) at (intersection-2);
\begin{scope}
\clip (0,3) rectangle (8,4.5);
\draw [fill=green,very thick ] (0,4.5) to [out=-90,in=90] (8,0) -- (8,4.5);
\end{scope}
\begin{scope}
\clip (0,2) rectangle (8,3);
\draw [fill=blue,very thick ] (0,4.5) to [out=-90,in=90] (8,0) -- (8,4.5);
\end{scope}
\begin{scope}
\clip (0,0) rectangle (8,2);
\draw [fill=red,very thick ] (0,4.5) to [out=-90,in=90] (8,0) -- (8,4.5);
\end{scope}
\draw [very thick ] (0,4.5) to [out=-90,in=90] (8,0);
%\draw [very thick] (0,4.5) to (8,4.5) to (8,3) to (0,3);
\end{tikzpicture}
\end{document}
これを取得するには: