我在绘制倾斜的椭圆形的一部分时遇到了一些问题。当调整倾斜角度以及起始和终止角度时,整个形状会移动。我想用椭圆的中心坐标来定义椭圆。
我认为我已经找到了解决方案,请参阅下文
\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}