我正在尝试绘制下图,其中有很多标签,但看起来很困难。我从以下代码开始,但似乎不是一个好的开始。可以帮忙绘制下面的图吗:
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{amssymb,amscd,amsmath}
\begin{document}
\begin{figure}[hbt!]
\centering
\begin{tikzpicture}[dot/.style={circle,fill,inner sep=1pt}]
\draw (0,0) node[dot,label=left:{$O$}] (O) {} -- (0,0,5) node[pos=1.1] (A) {$A$}; % A=z
\draw (O) -- (4,0) node[pos=1.1] (B) {$B$}; % B=x
\draw (O) -- (0,8) node[pos=1.1] (C) {$C$}; % C=y
\draw (O) -- (0,-2.5) node[pos=1.1]{$D$};
\draw (0.5,0,) -- ++ (0,{-0.5/sqrt(2)}) -- ++ (-0.5,0);
\draw (2,0,) -- ++ (0,{-0.5/sqrt(2)}) -- ++ (-0.5,0);
\path (B) -- (A) node[pos=0.3]{$\mathcal{C}$};
\end{tikzpicture}
\end{figure}
\end{document}
我不知道我做错了什么
答案1
绘制一个看起来像您的屏幕截图的图形很简单,但恕我直言,如果您解释了圆锥体和投影的具体情况,以便可以做得更好,您和所有其他人都会受益更多。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[dot/.style={circle,fill,inner sep=1pt}]
% example of a path with various coordinates and nodes along the way
\draw[-stealth] (120:4) coordinate[label=right:{$D$}](D) -- (0,0)
coordinate[label={[anchor=-105,inner sep=4pt]:{$O$}}] (O) --
(30:5) coordinate[label=above:{$\boldsymbol{u}$}](u)
node[pos=0.9,above]{$A$} ;
% simple but admittedly also a bit lengthy way of adding an arrow
% one could make it a style if needed
\draw[stealth-] (30:2) node[below right]{$\widetilde{\theta}$}
-- ++ (120:0.5) coordinate(aux);
\draw[dotted,thick] (aux) -- ++ (120:1.5) node[dot,label=above right:$\boldsymbol{X}$]{};
% another example of a path with various coordinates and nodes
% the construction is the same as above
\draw[-stealth] (-120:4) coordinate(D') -- (O) --
(-30:5)coordinate[label=above:{$\boldsymbol{v}$}](v) ;
\draw[stealth-] (-30:1.5) node[above right]{$\widetilde{\theta}$}
-- ++ (-120:0.5) coordinate (aux);
\draw[dotted,thick] (aux) -- ++ (-120:1.5) node[dot,label=right:$\boldsymbol{X}$]{};
\draw[stealth-] (O) node[anchor=25,inner sep=6pt]{$\widetilde{\theta}$}
-- ++ (160:0.5) coordinate (aux);
\draw[dotted,thick] (aux) -- ++ (160:1.5) node[dot,label=left:$\boldsymbol{X}$]{};
\draw[stealth-] (D) ++ (-150:0.1) ++ (-60:0.5) node[left]{$-\boldsymbol{R}_2$} -- ++ (-60:1);
\draw[stealth-] (D') ++ (150:0.1) ++ (60:0.5) node[left]{$-\boldsymbol{R}_1$} -- ++ (60:1);
% you do not need to draw a path
\path (u) -- (v) node [midway]{$\mathcal{C}=\mathcal{S}_1$}
(-50:3.5) node{$\mathcal{S}_4$} (-150:3) node{$\mathcal{C}^0=\mathcal{S}_3$} ;
\end{tikzpicture}
\end{document}
编辑:添加了更多节点和一些非常基本的解释。如果您想更好地了解发生了什么,查看特定节点内容并了解节点的放置方式可能会有所帮助。在这个答案中,故意只使用普通的 Ti钾尽管有些事情可以以更高的复杂性为代价实现更多的自动化,但还是使用了 Z。还要注意的是,可以使 Ti钾Z 绘制一些高维形状的投影,即如果你有圆锥的数学描述,那么你就可以“根据第一原理”绘制它。从长远来看,如果你需要制作几个这样的图表,这可能会有所回报。