我正在尝试更改 Q 节点的标签位置以指示角度,但似乎不起作用,只能使用默认位置(0 表示右侧,45 表示右上方等)。感谢您的帮助。
这是我的代码
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,decorations,babel,positioning}
\usepackage{tikz-3dplot}
\begin{document}
\begin{tikzpicture}[>=stealth, axis/.style={-, black}, vector/.style={-{Stealth[length=8,width=3.5]}, thick, black}]
\draw (0, 0) circle (2cm);
\draw (0, 0) node[below]{$ O $};
\draw (0, 0) -- (-.65, 1.891);
\draw (-.65, 1.891) node[circle,fill,inner sep=0.7pt,label=above:$ P $](){};
\draw (0, 0) -- (.65, 1.891);
\draw (.65, 1.891) node[circle,fill,inner sep=0.7pt,label={50:$ Q $}](){};
\draw [black]([shift=(71.03:.5cm)]0,0) arc (71.03:108.969:.5cm);
\draw [color=black](0,0)+(90:0.85) node[rotate=0] {$ \Delta \theta $};
\draw [vector] (-.65, 1.891) -- (1,2.458) node[above]{$ \vec{ v } _{ 1 } $};
\draw [-{Stealth[length=8,width=3.5]}, thick, black,dashed] (.65, 1.891) -- (2.3,2.458);
\draw (2.3,2.458) node[above]{$ R $};
\draw (2.3,2.458) -- (2.8,2.63);
\draw [vector] (.65, 1.891) -- (2.3,1.324) node[below left]{$ \vec{ v } _{ 2 } $};
\draw [vector] (2.3,2.458) -- (2.3,1.324) node[above right]{$ \Delta \vec{ v } $};
\draw [black]([shift=(-18.970:.5cm)].65, 1.891) arc (-18.970:18.970:.5cm);
\draw [color=black](.65, 1.891)+(0:0.85) node[rotate=0] {$ \Delta \theta $};
\draw [black]([shift=(-90:.25cm)]2.3,2.458) arc (-90:18.970:.25cm);
\draw [color=black](2.3,2.458)+(-15:0.5) node[rotate=0] {$ \beta $};
\draw (2.3,1.324) node[below right]{$ S $};
\end{tikzpicture}
结果如下:
答案1
不清楚您在问什么,因为不清楚您期望 Q 最终会出现在哪里。
基本上,您说的是继续前进到 处的点(.65,1.891)
,并在那里创建一个半径为 的圆形节点0.7pt
。然后,移动到与该节点中心成 度角的点50
,在节点的边界上,并在那里放置另一个节点,使其从第一个节点的中心“面向外”。但是,如果足够近,所选的锚点将捕捉到罗盘点,因此它将使用south west
当前点处的锚点绘制节点。
Q
如果我们用彩色将其画出来,我们可以看到这确实是绘制标签的地方。
红线对应于包含的节点的边框Q
。红点是主节点。小蓝圈是节点的锚点Q
。基本上,我将节点标签线更改为
\node (node) [circle, fill, inner sep=.7pt, red] at (.65,1.891) {};
并添加
\node (node) [circle, fill, inner sep=.7pt, red] at (.65,1.891) {};
\draw [ultra thin, blue] (node.50) ++(50:.7pt) ++(50:-.2pt) circle (.4pt);
在代码的末尾。
现在我假设您想将标签放在其他地方,但我不知道在哪里。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[>=stealth, axis/.style={-, black}, vector/.style={-{Stealth[length=8,width=3.5]}, thick, black}]
\draw (0, 0) circle (2cm);
\draw (0, 0) node[below]{$ O $};
\draw (0, 0) -- (-.65, 1.891);
\draw (-.65, 1.891) node[circle,fill,inner sep=0.7pt,label=above:$ P $](){};
\draw (0, 0) -- (.65, 1.891);
\draw (.65, 1.891) node[circle,fill,inner sep=0.7pt,label={[draw=red]50:$ Q $}](){};
\draw [black]([shift=(71.03:.5cm)]0,0) arc (71.03:108.969:.5cm);
\draw [color=black](0,0)+(90:0.85) node[rotate=0] {$ \Delta \theta $};
\draw [vector] (-.65, 1.891) -- (1,2.458) node[above]{$ \vec{ v } _{ 1 } $};
\draw [-{Stealth[length=8,width=3.5]}, thick, black,dashed] (.65, 1.891) -- (2.3,2.458);
\draw (2.3,2.458) node[above]{$ R $};
\draw (2.3,2.458) -- (2.8,2.63);
\draw [vector] (.65, 1.891) -- (2.3,1.324) node[below left]{$ \vec{ v } _{ 2 } $};
\draw [vector] (2.3,2.458) -- (2.3,1.324) node[above right]{$ \Delta \vec{ v } $};
\draw [black]([shift=(-18.970:.5cm)].65, 1.891) arc (-18.970:18.970:.5cm);
\draw [color=black](.65, 1.891)+(0:0.85) node[rotate=0] {$ \Delta \theta $};
\draw [black]([shift=(-90:.25cm)]2.3,2.458) arc (-90:18.970:.25cm);
\draw [color=black](2.3,2.458)+(-15:0.5) node[rotate=0] {$ \beta $};
\draw (2.3,1.324) node[below right]{$ S $};
\node (node) [circle, fill, inner sep=.7pt, red] at (.65,1.891) {};
\draw [ultra thin, blue] (node.50) ++(50:.7pt) ++(50:-.2pt) circle (.4pt);
\end{tikzpicture}
\end{document}
编辑
如果你能解释一下你的期望,那么就有可能(可能)解释如何实现它。但为了回应反复断言它不起作用的说法,我只能重复一遍,它确实做到了它所说的。
假设我们不只绘制一次顽固节点,而是绘制三次:在40
、50
和60
度处。我们在每个节点周围绘制一个不同颜色的半透明边框,以获得分层效果。
现在,如果角度变化没有影响,节点将位于完全相同的位置。然而,事实并非如此。10
正如预期的那样,节点每次都会逐渐移动。
\draw (.65, 1.891) node[circle,fill,inner sep=0.7pt,label={[draw=blue, draw opacity=.5]60:$ Q $}](){};
\draw (.65, 1.891) node[circle,fill,inner sep=0.7pt,label={[draw=magenta, draw opacity=.5]40:$ Q $}](){};
\draw (.65, 1.891) node[circle,fill,inner sep=0.7pt,label={[draw=green, draw opacity=.5]50:$ Q $}](){};
您还可以看到,其中Q
包括了三次,每次都稍微移动了一点。
不变的是标签节点的锚点。在每种情况下,标签都锚定在south west
。
但是,如果我们使用诸如 这样的角0
,那么使用的锚点将是west
。如果我们使用90
,那么使用的锚点将是。因此,如果角度从变为或变为south
,标签节点的偏移将比仅通过标签节点锚点的变化所解释的偏移要大得多。用于放置节点的锚点的变化会增加节点锚点变化的影响。0
45
45
90
对于非常小的节点(如1.4pt
直径节点)尤其如此,因为从其中心以 度 画一条线时,其边界上的点与40
以 度 画一条线时边界上的点非常非常接近60
。简而言之,全部这种节点边界上的点非常靠近,因为节点非常小,因此其边界非常短。
如果将标签应用于较大的节点,效果会更加显著。如果我们将节点的直径从 改为0.7pt
,70pt
效果就会非常明显。