
Я пытался нарисовать часть одного эллипса с помощью \pgfpatharcto
. Однако, когда я попытался сравнить с исходным полным эллипсом, обнаружилась небольшая разница. Я прикрепляю код, а также результат.
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\draw (2.5cm,0) ellipse (3.5cm and 3.8436cm);
\pgfsetstrokecolor{red}
\pgfmoveto{\pgfpoint{2.841cm}{3.8284cm}}
\pgfpatharcto{3.5cm}{3.8436cm}{0}{0}{0}{\pgfpoint{2.841cm}{-3.8284cm}}\pgfusepath{stroke};
\end{tikzpicture}
\end{document}
решение1
Также можно нарисовать эллипс дважды, но во второй раз внутри области отсечения:
\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\draw (2.5cm,0) ellipse (3.5cm and 3.8436cm);
\begin{scope}
\clip (2.5cm,0)--++(80:3.9) arc(80:-80:3.9)--cycle;
\draw[red] (2.5cm,0) ellipse (3.5cm and 3.8436cm);
\end{scope}
\end{tikzpicture}
\end{document}
решение2
Вам может понравиться попробоватьМетапостдля этого. Он имеет полезный subpath
синтаксис, который позволяет рисовать сегменты сохраненного пути. Компилировать с помощью lualatex
.
\RequirePackage{luatex85}
\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);
path e;
e = fullcircle xscaled 3.5cm yscaled 3.8436cm;
draw e withpen pencircle scaled 2 withcolor .8 white;
draw subpath (-2,2) of e withcolor 2/3 red;
endfig;
\end{mplibcode}
\end{document}
Metapost предоставляет концепцию «времени» вдоль пути. На fullcircle
пути есть 8 точек времени, начиная с точки 0 в «3 часах», так сказать.
Так subpath (0,2) of c
будет с 3 часов до полудня. Вы также можете использовать дробные числа: subpath (2.718, 3.1415) of c
.
И как показано в моем примере, вы можете использовать отрицательные числа для обозначения точек «до» точки 0.