Tikz를 사용하여 이 복잡한 플롯을 마무리하는 방법은 무엇입니까?

Tikz를 사용하여 이 복잡한 플롯을 마무리하는 방법은 무엇입니까?

한 번 더, 나는 tikz에서 다소 복잡한 수치를 얻으려고 노력하고 있는데 그럴 수 없습니다. 이것이 내가 원하는 결과입니다:

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

이것은 지금까지 최선의 시도입니다.

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

그리고 이것은 나의 최선의 (아직 형편없는) 시도의 MWE입니다:

\documentclass[dvipsnames]{standalone}
\usepackage{tikz,siunitx}
\usetikzlibrary{fit, calc, matrix, positioning, arrows.meta, intersections, through, backgrounds, patterns}

\begin{document}
\begin{tikzpicture}[node distance = 0pt, every pin/.style = {pin distance=11mm, pin edge={stealth-}}, every node/.style = {color=Blue!60!black}, dot/.style = {circle, fill=black, inner sep=0mm, minimum size=2mm, node contents={}}, line/.style = {-stealth, shorten >=1mm, shorten <= 1mm},]
\coordinate (O) at (0,0);
\coordinate[right=55mm of O] (X);
\coordinate[above=55mm of O] (Y);
\coordinate[above right=1 and 2 of O] (d);
\coordinate[right=2 of X |- Y] (e);
\coordinate (a) at (10,10);
\draw[-latex] ([xshift=-0.1] O) -- (X) node[right] {$h_1$};
\draw[-latex] ([yshift=-0.1] O) -- (Y) node[above] {$h_2$};
\draw[Blue, thick, scale=0.9,name path=B] ($(e)-(5.4,0)$) arc(180:270:5.5 and 4.4);
\path[name path=S] (O) -- (45:6);
\path[name intersections={of=B and S, by={s}}];
\coordinate[left =of s -| O] (s1);
\coordinate[below=of s |- O] (s2);
\draw[red,thick] let \p1 = ($(s)-(O)$), \n1 = {veclen(\x1,\y1)} in ($(O)+(\n1,0)$) arc(0:90:\n1);
\draw[densely dotted]  (s1) -|  (s2) node [pos=0.25,above] {$S^{\prime}$};
\node[dot,at=(s),pin=60:{$F(S^{\prime},d^{\prime})=(1,...,1)$}];
\path[name path=D] (s2) -- (15:8);
\draw[-] (0,0) -- (3.5,3.5);
\node [left] at (s1) {$1$};
\node [below] at (s2) {$1$};
\node [below] at (0,0) {$d^{\prime}=0$};
\node [right, yshift=-2.5pt] at (3.5,3.5) {$45\si{\degree}$};
\node [right] at (7.5,1.55) {$y_1y_2=1$};
\end{tikzpicture}
\end{document}

원하는 결과를 얻을 수 있도록 도와줄 사람이 있나요? 시간 내주셔서 감사합니다! :)

답변1

직사각형을 만드는 매우 쉬운 방법 중 하나는 다음을 node사용하여 회전된 사각형을 추가하는 것입니다.

\node[draw,minimum width=10cm,minimum height=6cm,anchor=north,rotate=-45] (rec) at (s) {};

끝에 텍스트가 있는 화살표는 다음을 사용하여 추가할 수 있습니다.

\draw [latex-] (rec.40) -- +(1cm,0) node[right] {$T = \{ y \in \mathbb{R}^{n} \mid \sum\limits_{i=1}^{n}y_{i} = n\}$};

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

\documentclass[dvipsnames,border=4mm]{standalone}
\usepackage{tikz,siunitx}
\usepackage{amsmath,amssymb}

\usetikzlibrary{fit, calc, matrix, positioning, arrows.meta, intersections, through, backgrounds, patterns}

\begin{document}
\begin{tikzpicture}[node distance = 0pt, every pin/.style = {pin distance=11mm, pin edge={stealth-}}, every node/.style = {color=Blue!60!black}, dot/.style = {circle, fill=black, inner sep=0mm, minimum size=2mm, node contents={}}, line/.style = {-stealth, shorten >=1mm, shorten <= 1mm},]
\coordinate (O) at (0,0);
\coordinate[right=55mm of O] (X);
\coordinate[above=55mm of O] (Y);
\coordinate[above right=1 and 2 of O] (d);
\coordinate[right=2 of X |- Y] (e);
\coordinate (a) at (10,10);
\draw[-latex] ([xshift=-0.1] O) -- (X) node[right] {$h_1$};
\draw[-latex] ([yshift=-0.1] O) -- (Y) node[above] {$h_2$};
\draw[Blue, thick, scale=0.9,name path=B] ($(e)-(5.4,0)$) arc(180:270:5.5 and 4.4);
\path[name path=S] (O) -- (45:6);
\path[name intersections={of=B and S, by={s}}];
\coordinate[left =of s -| O] (s1);
\coordinate[below=of s |- O] (s2);
\draw[red,thick] let \p1 = ($(s)-(O)$), \n1 = {veclen(\x1,\y1)} in ($(O)+(\n1,0)$) arc(0:90:\n1);
\draw[densely dotted]  (s1) -|  (s2) node [pos=0.25,above] {$S^{\prime}$};
\node[dot,at=(s),pin=60:{$F(S^{\prime},d^{\prime})=(1,...,1)$}];
\path[name path=D] (s2) -- (15:8);
\draw[-] (0,0) -- (3.5,3.5);
\node [left] at (s1) {$1$};
\node [below] at (s2) {$1$};
\node [below] at (0,0) {$d^{\prime}=0$};
\node [right, yshift=-2.5pt] at (3.5,3.5) {\SI{45}{\degree}};
\node [right] at (7.5,1.55) {$y_1y_2=1$};

\node[draw,minimum width=10cm,minimum height=6cm,anchor=north,rotate=-45] (rec) at (s) {};
\draw [latex-] (rec.40) -- +(1cm,0) node[right] {$T = \{ y \in \mathbb{R}^{n} \mid \sum\limits_{i=1}^{n}y_{i} = n\}$};
\end{tikzpicture}
\end{document}

관련 정보