Tikz:绘制平行四边形问题(求和节点)

Tikz:绘制平行四边形问题(求和节点)

我想计算已知 ABCD 平行四边形中的 A、B、D 的坐标。

这很好用:

\coordinate (C) at ($(B)!.5!(D)!-1!(A)$) ;

这不起作用,为什么?

\coordinate (C) at ($(B)+(D)-2*(A)$) ;

这里是 MWE:

\documentclass[tikz]{standalone}

\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}

\coordinate (A) at (5,2) ;
\coordinate (B) at (1,-4) ;
\coordinate (D) at (-5,6) ;

% This doesn't work, why ?
\coordinate (C) at ($(B)+(D)-2*(A)$) ;

\coordinate (C) at ($(B)!.5!(D)!-1!(A)$) ;

\draw (A)--(B)--(C)--(D)--cycle ;

\end{tikzpicture}
\end{document}

答案1

我试图直观地展示原因,如果您需要详细信息,请告诉我。2*==>表示不起作用的结果。!==>在职的一。虽然从路径上看,它们都正常工作。它们只是语法不等同。特别是,(B)+(D)总和是相对于原点的,而不是彼此的。

因此不起作用的是:

 (1,-4) + (-5,6) - (10,4) = (-14,-2)

与我放入节点的文本匹配。因此匹配计算是

(B) + (D) - (A)

没有2*

别介意pt它们是厘米等价物但我懒得删除它们。

\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[every label/.style={font=\Huge}]
\coordinate[label=A] (A) at (5,2) ;
\coordinate[label=B] (B) at (1,-4) ;
\coordinate[label=D] (D) at (-5,6) ;

\draw[blue,thick,->] (0,0) --++(B)--++(D)--++([scale=-1]A)--++ ([scale=-1]A)
let \p1 = ($(B)+(D)-2*(A)$),
      \n1={int(\x1/28.3464567)},
      \n2={int(\y1/28.3464567)} in node[below,font=\Huge]{\texttt{2*==>} \n1,\n2};

\draw[red,ultra thick,->] (0,0) -- ($(B)!0.5!(D)$) -- (A) to[bend right]($(B)!0.5!(D)!-1!(A)$)
let \p1 = ($(B)!.5!(D)!-1!(A)$),
      \n1={int(\x1/28.3464567)},
      \n2={int(\y1/28.3464567)} in node[below right,font=\Huge] {\texttt{!=>}\n1,\n2};

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容