我必须做一些计算,例如:
\node (A) {A};
\node (b) at (x,y) {B};
((A) + (B))*2
但是我不知道如何在计算语句中对其进行分组,我尝试了($((A)+(B))*2$)
和(${(A)+(B)}*2$)
。我该如何表达这一点?(目前我使用($(A)*2+(B)*2$)
,所以我必须在两个地方调整因子)
运算符也存在类似的问题|-
。只要我不尝试对其中一个操作数进行数学运算,我就可以在计算中使用它。有没有办法实现($((A)+(B)) |- (4,7)$)
?
答案1
对于第一个问题,您可以嵌套坐标计算,先计算A+B
,然后将该结果乘以 2:
\node at ($2*($(A)+(B)$)$) {C};
Qrrbrbirlbel 在下面的评论中提到了另一种方法:
\node at ([scale=2]$(A)+(B)$) {C};
对于第二个问题,请参阅 Andrew Stacey 的回答在 TikZ 中结合 |- 和 !.5!简而言之,使用两对括号括起第一个坐标的计算结果:
\node at ({{$(A)+(B)$}} |- 4,7) {D};
完整示例:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (2,3);
\node (A) at (0,1) {A};
\node (B) at (1,0) {B};
\node at ($2*($(A)+(B)$)$) {C};
\node at ({{$(A)+(B)$}} |- 4,3) {D};
\end{tikzpicture}
\end{document}
答案2
此let
操作在这些情况下或对于更复杂的计算非常有用:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node (A) at (0,1) {A};
\node (B) at (1,0) {B};
\path let \p1=($(A)+(B)$), \p2=($2*(\p1)$) in node at (\p2) {C};
\path let \p1=($(A)+(B)$), \p2=(\p1 |- 4,7) in node at (\p2) {D};
\end{tikzpicture}
\end{document}