我可以使用一些帮助来优化以下 tikz 图形:
\documentclass[border=3pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\filldraw[black!5] (-4.5,-1.5)--(1.5,-1.5)--(4.5,1.5)--(-1.5,1.5)--(-4.5,-1.5);
\draw[->] (-1.5,-1.5)--(1.5,1.5);
\draw[->] (-3,0)--(3,0);
\node[right] at (3,0) {$x$};
\node[above] at (1.5,1.5) {$y$};
\def\firstellipse{(0,0) ellipse (2.5 and .7)};
\draw[cyan!80]\firstellipse;
\def\secondellipse{(0,0) ellipse (1.5 and .4)};
\draw[orange]\secondellipse;
\node[circle,inner sep=.5pt,draw=red] at (2,.41) {};
\node[above] at (2.1,.41) {$\color{red}P$};
\node[circle,inner sep=.5pt,draw=red] at (1,.-.298) {};
\node[below] at (1.1,-.3) {$\color{red}Q$};
\end{tikzpicture}
\end{document}
- 我想要一些从 P 和 Q 开始沿着椭圆的虚线箭头。可能长 1 厘米。我是否必须通过尝试找出正确的弧配置?
- 如您所见,我通过估算绘制了 x 轴和 y 轴,以及(应该是)圆。有没有一种不使用 tikz-3D 的正确方法可以在平面上绘制圆?或者您认为这样做就足够了?
- 还有其他优化此图形的建议吗?也许是颜色或其他细节方面。它基本上是关于欧几里得平面中点
$\mathbb R^2$
与特殊正交群相互作用时的轨道$SO(2)$
。它应该与行星轨道有关。
答案1
仅展示 tikz-3dplot。
所以这基本上就是你所画的。
\documentclass[tikz,border=3pt]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
%% viewing angles %%
\def\angThe{70}
\def\angPhi{55}
\tdplotsetmaincoords{\angThe}{\angPhi}
\begin{tikzpicture}%[tdplot_main_coords,scale=1.5]
\filldraw[black!5] (-3,-3) -- (-3,3) -- (3,3) -- (3,-3) -- cycle;
\draw[->] (-3,0)--(3,0) node [at end, above] {$x$};
\draw[->] (0,-3)--(0,3) node [at end, right] {$y$};
\def\R{2.5} % big radius
\def\r{1.5} % smaller one
\draw[cyan!80] (0,0) circle (\R);
\draw[orange] (0,0) circle (\r);
\node [circle,inner sep=.5pt,draw=red,label={[red,above right]$P$}] at (25:\R) {};
\node [circle,inner sep=.5pt,draw=red,label={[red,below right]$Q$}] at (-25:\r) {};
\end{tikzpicture}
\end{document}
它生产:
[tdplot_main_coords,scale=1.5]
我们取消注释tikzpicture的选项。
一切都像这样转变:
现在我们有了一个很好的设置:我们在平面上处理困难的事情(使用 tikz-3dplot 注释),并且偶尔在 3d 中检查事物的样子。
特别是您要绘制的椭圆箭头只是圆弧(可能更容易操作。)
稍微摆弄一下,我们可以得到这个:
\documentclass[tikz,border=3pt]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
%% viewing angles %%
\def\angThe{70}
\def\angPhi{55}
\tdplotsetmaincoords{\angThe}{\angPhi}
\begin{tikzpicture}[tdplot_main_coords,scale=1.5]
\filldraw[black!5] (-3,-3) -- (-3,3) -- (3,3) -- (3,-3) -- cycle;
\draw[->] (-3,0)--(3,0) node [at end, above right] {$x$};
\draw[->] (0,-3)--(0,3) node [at end, below right] {$y$};
\def\R{2.5}
\def\r{1.5}
\draw[cyan!80] (0,0) circle (\R);
\draw[orange] (0,0) circle (\r);
\node [circle,inner sep=.5pt,draw=red,label={[red,below right]$P$}] (P) at (25:\R) {};
\node [circle,inner sep=.5pt,draw=red,label={[red,above]$Q$}] at (-25:\r) {};
\draw [->, thick, red](25:\R-.1) arc [start angle=25,end angle=55,radius=\R-.1] ;
\draw [->, thick, red](-25:\r+.1) arc [start angle=-25,end angle=05,radius=\r+.1] ;
\end{tikzpicture}
\end{document}
否则,根本不使用 tikz-3dplot,我们手动设置 y 单位向量。
\documentclass[tikz,border=3pt]{standalone}
\begin{document}
\begin{tikzpicture}[y={(.5cm,.7cm)}]
\filldraw[black!5] (-3,-3) -- (-3,3) -- (3,3) -- (3,-3) -- cycle;
\draw[->] (-3,0)--(3,0) node [at end, above right] {$x$};
\draw[->] (0,-3)--(0,3) node [at end, below right] {$y$};
\def\R{2.5}
\def\r{1.5}
\draw[cyan!80] (0,0) circle (\R);
\draw[orange] (0,0) circle (\r);
\node [circle,inner sep=.5pt,draw=red,label={[red,below right]$P$}] (P) at (25:\R) {};
\node [circle,inner sep=.5pt,draw=red,label={[red,above]$Q$}] at (-25:\r) {};
\draw [->, thick, red](25:\R-.1) arc [start angle=25,end angle=55,radius=\R-.1] ;
\draw [->, thick, red](-25:\r+.1) arc [start angle=-25,end angle=05,radius=\r+.1] ;
\end{tikzpicture}
\end{document}