Нарисуйте дугу плотно (без полей)

Нарисуйте дугу плотно (без полей)

Я хочу получить следующую картинку, с той разницей, что кривая является дугой, а не параболой или другой кривой. Один из способов добиться этого — создать путь окружности и использовать библиотеку пересечений, чтобы найти пересечения двух линий (y=0, y=2). Однако есть проблема, так как будет сгенерирована большая ограничивающая рамка, поскольку путь полной окружности был нарисован виртуально. Я хочу нарисовать дугу, не делая никаких полей. Как это сделать?

\documentclass{standalone}
\usepackage{tikz} 
\begin{document}
\begin{tikzpicture}[auto, scale=1.5]
  \draw[fill=gray!50] (0,1.6) -- (0,0) -- (2,0);
  \draw[densely dashed] (0,1.6) |- (2, 2.7) -- (2, 1.1);
  \coordinate (a) at (0,1.6);
  \coordinate (b) at (2,1.1);
  \coordinate (o) at (1.4, 2.7);    
  \draw[|<->|] (0.08, 1.6) -- node {$H$} (0.08, 0);
  \draw[|<->|] (1.4, 0.93) -- node {$h$} (1.4, 0);
\end{tikzpicture}
\end{document}

введите описание изображения здесь

решение1

Из вашего вопроса я предполагаю, что вы хотите добиться чего-то вроде этого: визуализированное изображение

Для этого вы можете использовать arcкоманду - и математический движокtikz оба из которых прекрасно документированы вpgfmanual.

\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{calc}
\begin{document}

\begin{tikzpicture}[scale=2]
  \draw [help lines, <->] (0,1.2) |- (1.2,0);
  \draw (1,0) arc (0:90:1);

    \begin{scope}[|<->|, shorten <= -.2pt, shorten >= -.2pt]
      \draw (0,0) -- (0,1) node [midway, right] {$H$};
      \draw ({sin(45)},0) -- ({sin(45)}, {cos(45)}) node [midway, right] {$h$};
    \end{scope}
  \end{tikzpicture}
\end{document}

Команды shortenиспользуются для регулировки положения кончика стрелки в соответствии с дугой.

решение2

Если вы действительно хотите подогнать дугу к трем точкам, я посчитал:

математика

решение3

Вариант решения Муспита с использованием эллиптической дуги.

\documentclass{standalone}
\usepackage{tikz} 
\begin{document}
\begin{tikzpicture}[auto, scale=1.5]
  \draw[fill=gray!50] (0,1.6) -- (0,0) -- (2,0);
  %\draw[densely dashed] (0,1.6) |- (2, 2.7) -- (2, 1.1);
  \coordinate (a) at (0,1.6);
  \coordinate (b) at (2,1.1);
  \coordinate (o) at (1.4, 2.7);    
  \draw[|<->|] (0.08, 1.6) -- node {$H$} (0.08, 0);
  \draw[|<->|] (1.4, 0.93) -- node {$h$} (1.4, 0);
% compute x radius (assume y radius = 1.6)
  \pgfmathparse{1.4/cos(asin(0.93/1.6))}
  \let\xr=\pgfmathresult
  \draw[densely dashed] (0,1.6) arc[y radius= 1.6,x radius={\xr},start angle=90, end angle=0];
\end{tikzpicture}
\end{document}

демо

Связанный контент