![在 tikz 中创建半椭圆](https://linux22.com/image/415848/%E5%9C%A8%20tikz%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%8D%8A%E6%A4%AD%E5%9C%86.png)
我正在尝试使用 绘制部分地球轨道的图样tikz
。我希望绘制的轨道从地球的一侧开始,绕到另一侧,几乎完成一个椭圆形。
我的第一反应是手动绘制几个完整的椭圆,然后使用 画出其中的部分scope
。但是,没有简单的方法可以让端点很好地对齐而不改变曲线的形状。
我显然是一个糟糕的艺术家,这就是为什么我在 tikz 中这样做,但期望的输出应该是这样的:
有没有办法创建更具吸引力的半椭圆形?
梅威瑟:
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{decorations.text,calc,arrows.meta,intersections,positioning}
\begin{document}
\begin{tikzpicture}
\def\muu{0.005}
\def\R{2.75}
\node[inner sep=0pt] (globe) at (0,0)
{\includegraphics[width=.25\textwidth]{globe.jpg}};
\begin{scope}
\clip (1.05,1.5) rectangle (5,-5);
\draw [thick, ->] (0,0) ellipse ({(1-\muu)*1.5*\R} and {(1-\muu)*.5*\R});
\end{scope}
\end{tikzpicture}
\end{document}
答案1
欢迎!请注意,其他人没有您的图形文件,所以我只画一个半径为该半径的圆。除此之外,您只需要画一个旋转的弧和一些to[out=...,in=...]
拉伸。为了方便起见,我在一些宏中存储了各种距离。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\pgfmathsetmacro\Rglobe{.125\textwidth}
\pgfmathsetmacro\Halo{1mm}
\pgfmathsetmacro\SmallArc{1ex}
\pgfmathsetmacro\Rx{0.2\textwidth}
\draw (0,0) circle[radius=\Rglobe pt];
\draw[rotate=30] (90:{(\Rglobe+\Halo)*1pt)})
to[out=90,in=180] ++(\SmallArc pt,\SmallArc pt)
arc[start angle=90,end angle=-90,x radius=\Rx pt,
y radius={(\Rglobe+\Halo+\SmallArc)*1pt}] to[out=180,in=-90]
++(-\SmallArc pt,\SmallArc pt);
\end{tikzpicture}
\end{document}