在 tikz 中创建半椭圆

在 tikz 中创建半椭圆

我正在尝试使用 绘制部分地球轨道的图样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}

在此处输入图片描述

相关内容