绘制由中心点定义的倾斜部分椭圆

绘制由中心点定义的倾斜部分椭圆

我在绘制倾斜的椭圆形的一部分时遇到了一些问题。当调整倾斜角度以及起始和终止角度时,整个形状会移动。我想用椭圆的中心坐标来定义椭圆。

我认为我已经找到了解决方案,请参阅下文

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[]
    %
    % Define variables
    \def\eheight{1.5}; % ellipse height
    \def\ewidth{1.25*\eheight}; % ellipse width
    \def\xpos{3}; % x position of center of ellipse
    \def\ypos{2}; % y position of center of ellipse
    \def\sang{50}; % start angle
    \def\eang{160}; % end angle
    \def\rang{60}; % rotation angle
    %
    % Draw partial ellipse
    \draw[thick,rotate=\rang] ([shift=(\sang:{\ewidth} and \eheight), rotate=-\rang]\xpos,\ypos) arc (\sang:\eang:{\ewidth} and \eheight);
    %
    % Draw full ellipse and grid
    \draw[dashed,rotate=\rang] ([shift=(0:{\ewidth} and \eheight), rotate=-\rang]\xpos,\ypos) arc (0:360:{\ewidth} and \eheight);
    \draw[step=1.0] (0,0) grid (5,4);
\end{tikzpicture}

\end{document}

这是一个好的解决方案吗?或者可以改进吗?

在此处输入图片描述

答案1

以下是我的做法:

\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\newcommand{\eheight}{1.5} % ellipse height
\newcommand{\ewidth}{1.25*\eheight} % ellipse width
\newcommand{\xpos}{3} % x position of center of ellipse
\newcommand{\ypos}{2} % y position of center of ellipse
\newcommand{\sang}{50} % start angle
\newcommand{\eang}{160} % end angle
\newcommand{\rang}{60} % rotation angle

\draw (0,0) grid (5,4);
\draw[red, ultra thick] (\xpos,\ypos) ellipse[rotate=\rang, x radius=\ewidth, y radius=\eheight];
\draw[cyan, ultra thick, shift={(\xpos,\ypos)}, rotate=\rang] ({\ewidth*cos(\sang)} , {\eheight*sin(\sang)})  arc[start angle=\sang, end angle=\eang, x radius=\ewidth, y radius=\eheight];
\end{tikzpicture}
\end{document}

倾斜椭圆和部分椭圆

相关内容